:root {
     --green-dark: #2E7D32;
     --green-mid: #388E3C;
     --green-light: #66BB6A;
     --green-pale: #C8E6C9;
     --green-xpale: #E8F5E9;
     --brown: #5D4037;
     --brown-light: #8D6E63;
     --white: #ffffff;
     --off-white: #F9FBF9;
     --text-dark: #1B2B1C;
     --text-mid: #3a4a3b;
     --shadow-green: 0 8px 32px rgba(46, 125, 50, 0.18);
     --shadow-soft: 0 4px 24px rgba(0, 0, 0, 0.08);
     --radius-sm: 12px;
     --radius-md: 20px;
     --radius-lg: 30px;
     --radius-xl: 40px;
 }

 *,
 *::before,
 *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
 }

 html {
     scroll-behavior: smooth;
 }

 body {
     font-family: 'Poppins', sans-serif;
     background: var(--off-white);
     color: var(--text-dark);
     overflow-x: hidden;
 }

 /* ─── SCROLLBAR ─────────────────────────── */
 ::-webkit-scrollbar {
     width: 7px;
 }

 ::-webkit-scrollbar-track {
     background: var(--green-xpale);
 }

 ::-webkit-scrollbar-thumb {
     background: var(--green-mid);
     border-radius: 10px;
 }

 /* ─── NAVBAR ─────────────────────────────── */
 nav {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: 1000;
     padding: 0 5%;
     height: 70px;
     display: flex;
     align-items: center;
     justify-content: space-between;
     background: rgba(255, 255, 255, 0.82);
     backdrop-filter: blur(14px);
     -webkit-backdrop-filter: blur(14px);
     border-bottom: 1px solid rgba(46, 125, 50, 0.1);
     transition: box-shadow 0.3s;
 }

 nav.scrolled {
     box-shadow: 0 2px 24px rgba(46, 125, 50, 0.12);
 }

 .nav-logo {
     display: flex;
     align-items: center;
     gap: 10px;
     text-decoration: none;
 }

 .nav-logo-icon {
     width: 40px;
     height: 40px;
     background: linear-gradient(135deg, var(--green-dark), var(--green-light));
     border-radius: 12px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 20px;
     box-shadow: 0 3px 12px rgba(46, 125, 50, 0.3);
 }

 .nav-logo-text {
     font-family: 'Playfair Display', serif;
     font-weight: 700;
     font-size: 1.1rem;
     color: var(--green-dark);
     line-height: 1.1;
 }

 .nav-logo-text span {
     font-size: 0.7rem;
     font-family: 'Poppins', sans-serif;
     color: var(--brown-light);
     display: block;
     font-weight: 400;
 }

 .nav-links {
     display: flex;
     gap: 32px;
     list-style: none;
 }

 .nav-links a {
     text-decoration: none;
     font-size: 0.9rem;
     font-weight: 500;
     color: var(--text-mid);
     position: relative;
     transition: color 0.2s;
 }

 .nav-links a::after {
     content: '';
     position: absolute;
     bottom: -4px;
     left: 0;
     right: 0;
     height: 2px;
     background: var(--green-light);
     transform: scaleX(0);
     transition: transform 0.25s;
     border-radius: 2px;
 }

 .nav-links a:hover {
     color: var(--green-dark);
 }

 .nav-links a:hover::after {
     transform: scaleX(1);
 }

 .nav-cta {
     background: linear-gradient(135deg, var(--green-dark), var(--green-light));
     color: white;
     border: none;
     padding: 10px 22px;
     border-radius: var(--radius-lg);
     cursor: pointer;
     font-size: 0.88rem;
     font-weight: 600;
     font-family: 'Poppins', sans-serif;
     box-shadow: 0 3px 14px rgba(46, 125, 50, 0.3);
     transition: transform 0.2s, box-shadow 0.2s;
     text-decoration: none;
     display: inline-block;
 }

 .nav-cta:hover {
     transform: translateY(-2px);
     box-shadow: 0 6px 22px rgba(46, 125, 50, 0.4);
 }

 .hamburger {
     display: none;
     flex-direction: column;
     gap: 5px;
     cursor: pointer;
     padding: 5px;
 }

 .hamburger span {
     width: 24px;
     height: 2px;
     background: var(--green-dark);
     border-radius: 2px;
     transition: 0.3s;
 }

 /* ─── HERO ───────────────────────────────── */
 #hero {
     min-height: 100vh;
     padding-top: 70px;
     display: grid;
     grid-template-columns: 1fr 1fr;
     align-items: center;
     gap: 40px;
     padding-left: 7%;
     padding-right: 5%;
     position: relative;
     overflow: hidden;
     background: linear-gradient(160deg, #E8F5E9 0%, #F1F8E9 40%, #fff 100%);
 }

 /* SVG organic BG shapes */
 #hero::before {
     content: '';
     position: absolute;
     top: -80px;
     right: -100px;
     width: 600px;
     height: 600px;
     background: radial-gradient(circle, rgba(102, 187, 106, 0.18) 0%, transparent 70%);
     border-radius: 50%;
     pointer-events: none;
 }

 #hero::after {
     content: '';
     position: absolute;
     bottom: -60px;
     left: -80px;
     width: 400px;
     height: 400px;
     background: radial-gradient(circle, rgba(46, 125, 50, 0.12) 0%, transparent 70%);
     border-radius: 50%;
     pointer-events: none;
 }

 .hero-content {
     position: relative;
     z-index: 2;
 }

 .hero-badge {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: rgba(46, 125, 50, 0.1);
     border: 1px solid rgba(46, 125, 50, 0.2);
     border-radius: 50px;
     padding: 6px 16px;
     font-size: 0.8rem;
     color: var(--green-dark);
     font-weight: 600;
     margin-bottom: 24px;
     backdrop-filter: blur(8px);
 }

 .hero-badge .dot {
     width: 8px;
     height: 8px;
     border-radius: 50%;
     background: var(--green-light);
     animation: pulse-dot 2s infinite;
 }

 .hero-title {
     font-family: 'Playfair Display', serif;
     font-size: clamp(2.6rem, 5vw, 4.2rem);
     font-weight: 900;
     line-height: 1.08;
     color: var(--text-dark);
     margin-bottom: 20px;
 }

 .hero-title .highlight {
     color: var(--green-dark);
     position: relative;
 }

 .hero-title .highlight::after {
     content: '';
     position: absolute;
     left: 0;
     bottom: 2px;
     right: 0;
     height: 6px;
     background: linear-gradient(90deg, var(--green-light), transparent);
     border-radius: 3px;
     z-index: -1;
     opacity: 0.5;
 }

 .hero-sub {
     font-size: 1.1rem;
     color: #4e6b50;
     line-height: 1.7;
     max-width: 480px;
     margin-bottom: 36px;
     font-weight: 400;
 }

 .hero-btns {
     display: flex;
     gap: 16px;
     flex-wrap: wrap;
 }

 .btn-primary {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: linear-gradient(135deg, var(--green-dark) 0%, var(--green-light) 100%);
     color: white;
     padding: 14px 32px;
     border-radius: var(--radius-lg);
     text-decoration: none;
     font-weight: 600;
     font-size: 1rem;
     box-shadow: 0 6px 24px rgba(46, 125, 50, 0.35);
     transition: transform 0.25s, box-shadow 0.25s;
     border: none;
     cursor: pointer;
     font-family: 'Poppins', sans-serif;
 }

 .btn-primary:hover {
     transform: translateY(-3px);
     box-shadow: 0 12px 32px rgba(46, 125, 50, 0.45);
 }

 .btn-secondary {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: white;
     color: var(--green-dark);
     border: 2px solid var(--green-pale);
     padding: 14px 28px;
     border-radius: var(--radius-lg);
     text-decoration: none;
     font-weight: 600;
     font-size: 1rem;
     transition: all 0.25s;
     cursor: pointer;
     font-family: 'Poppins', sans-serif;
 }

 .btn-secondary:hover {
     background: var(--green-xpale);
     border-color: var(--green-light);
     transform: translateY(-2px);
 }

 .hero-stats {
     display: flex;
     gap: 32px;
     margin-top: 40px;
 }

 .hero-stat {
     text-align: left;
 }

 .hero-stat .num {
     font-family: 'Playfair Display', serif;
     font-size: 1.8rem;
     font-weight: 700;
     color: var(--green-dark);
 }

 .hero-stat .lbl {
     font-size: 0.78rem;
     color: #6a8a6c;
     font-weight: 500;
 }

 /* Hero image grid */
 .hero-visuals {
     position: relative;
     z-index: 2;
     display: grid;
     grid-template-columns: 1fr 1fr;
     grid-template-rows: auto auto;
     gap: 16px;
     padding: 20px 0;
 }

 .plant-card-img {
     border-radius: var(--radius-md);
     overflow: hidden;
     position: relative;
     box-shadow: var(--shadow-green);
     transition: transform 0.35s, box-shadow 0.35s;
     cursor: pointer;
 }

 .plant-card-img:hover {
     transform: scale(1.04) translateY(-4px);
     box-shadow: 0 16px 40px rgba(46, 125, 50, 0.25);
 }

 .plant-card-img.tall {
     grid-row: span 2;
 }

 .plant-card-img img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     display: block;
     transition: transform 0.5s;
 }

 .plant-card-img:hover img {
     transform: scale(1.06);
 }

 .plant-card-img .img-label {
     position: absolute;
     bottom: 0;
     left: 0;
     right: 0;
     padding: 20px 14px 12px;
     background: linear-gradient(transparent, rgba(0, 0, 0, 0.5));
     color: white;
     font-size: 0.82rem;
     font-weight: 600;
 }

 /* ─── FLOATING LEAVES ────────────────────── */
 .leaves-container {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     pointer-events: none;
     z-index: 0;
     overflow: hidden;
 }

 .leaf {
     position: absolute;
     top: -60px;
     font-size: 1.4rem;
     opacity: 0.5;
     animation: leafFall linear infinite;
 }

 @keyframes leafFall {
     0% {
         transform: translateY(-60px) rotate(0deg) translateX(0);
         opacity: 0;
     }

     10% {
         opacity: 0.5;
     }

     90% {
         opacity: 0.4;
     }

     100% {
         transform: translateY(110vh) rotate(720deg) translateX(60px);
         opacity: 0;
     }
 }

 /* ─── SECTION COMMON ─────────────────────── */
 section {
     padding: 90px 7%;
     position: relative;
 }

 .section-label {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     color: var(--green-mid);
     font-size: 0.82rem;
     font-weight: 600;
     letter-spacing: 2px;
     text-transform: uppercase;
     margin-bottom: 14px;
 }

 .section-label .line {
     width: 28px;
     height: 2px;
     background: var(--green-light);
     border-radius: 2px;
 }

 .section-title {
     font-family: 'Playfair Display', serif;
     font-size: clamp(2rem, 3.5vw, 2.8rem);
     font-weight: 800;
     line-height: 1.18;
     color: var(--text-dark);
     margin-bottom: 16px;
 }

 .section-sub {
     font-size: 1rem;
     color: #5a726a;
     max-width: 560px;
     line-height: 1.7;
 }

 /* ─── CATEGORIES ─────────────────────────── */
 #categories {
     background: white;
 }

 .cat-header {
     text-align: center;
     margin-bottom: 52px;
 }

 .cat-header .section-sub {
     margin: 0 auto;
 }

 .cat-grid {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
     gap: 24px;
 }

 .cat-card {
     border-radius: var(--radius-md);
     overflow: hidden;
     background: var(--off-white);
     border: 1.5px solid #e8f0e8;
     cursor: pointer;
     transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
     position: relative;
     group: true;
 }

 .cat-card:hover {
     transform: translateY(-8px) scale(1.02);
     box-shadow: 0 12px 40px rgba(46, 125, 50, 0.2), 0 0 0 3px rgba(102, 187, 106, 0.25);
     border-color: var(--green-light);
 }

 .cat-img-wrap {
     width: 100%;
     height: 190px;
     overflow: hidden;
     position: relative;
 }

 .cat-img-wrap img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.5s;
 }

 .cat-card:hover .cat-img-wrap img {
     transform: scale(1.1);
 }

 .cat-img-wrap .cat-icon-overlay {
     position: absolute;
     top: 12px;
     right: 12px;
     width: 40px;
     height: 40px;
     background: rgba(255, 255, 255, 0.88);
     backdrop-filter: blur(6px);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 18px;
     box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
 }

 .cat-body {
     padding: 18px 20px 22px;
 }

 .cat-body h3 {
     font-size: 1.05rem;
     font-weight: 700;
     color: var(--text-dark);
     margin-bottom: 6px;
 }

 .cat-body p {
     font-size: 0.83rem;
     color: #7a957c;
     line-height: 1.55;
 }

 .cat-arrow {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     margin-top: 12px;
     font-size: 0.82rem;
     font-weight: 600;
     color: var(--green-dark);
     opacity: 0;
     transform: translateX(-8px);
     transition: opacity 0.25s, transform 0.25s;
 }

 .cat-card:hover .cat-arrow {
     opacity: 1;
     transform: translateX(0);
 }

 /* ─── OFFER SECTION ──────────────────────── */
 #offer {
     background: linear-gradient(135deg, #1B5E20 0%, #2E7D32 50%, #388E3C 100%);
     color: white;
     overflow: hidden;
 }

 #offer::before {
     content: '';
     position: absolute;
     inset: 0;
     background-image: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.06) 0%, transparent 50%),
         radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.04) 0%, transparent 40%);
     pointer-events: none;
 }

 /* Leaf pattern bg */
 .offer-leaves-bg {
     position: absolute;
     inset: 0;
     pointer-events: none;
     overflow: hidden;
 }

 .offer-leaf-shape {
     position: absolute;
     width: 80px;
     height: 120px;
     background: rgba(255, 255, 255, 0.04);
     border-radius: 50% 10% 50% 10%;
     transform: rotate(var(--r));
 }

 .offer-inner {
     position: relative;
     z-index: 2;
     display: grid;
     grid-template-columns: 1fr 1fr;
     align-items: center;
     gap: 48px;
 }

 .offer-badge {
     display: inline-flex;
     align-items: center;
     gap: 10px;
     background: rgba(255, 255, 255, 0.15);
     backdrop-filter: blur(8px);
     border: 1px solid rgba(255, 255, 255, 0.2);
     border-radius: 50px;
     padding: 8px 20px;
     font-size: 0.88rem;
     font-weight: 700;
     margin-bottom: 20px;
 }

 .offer-badge .percent {
     background: #FFD54F;
     color: #3E2723;
     border-radius: 50px;
     padding: 3px 10px;
     font-size: 0.82rem;
     font-weight: 800;
 }

 .offer-pulse-ring {
     width: 10px;
     height: 10px;
     border-radius: 50%;
     background: #FFD54F;
     position: relative;
 }

 .offer-pulse-ring::after {
     content: '';
     position: absolute;
     inset: -4px;
     border: 2px solid #FFD54F;
     border-radius: 50%;
     animation: offerPulse 1.5s ease-out infinite;
 }

 @keyframes offerPulse {
     0% {
         transform: scale(1);
         opacity: 1;
     }

     100% {
         transform: scale(2.5);
         opacity: 0;
     }
 }

 .offer-title {
     font-family: 'Playfair Display', serif;
     font-size: clamp(2rem, 4vw, 3.2rem);
     font-weight: 900;
     line-height: 1.1;
     margin-bottom: 16px;
 }

 .offer-sub {
     font-size: 1rem;
     opacity: 0.85;
     line-height: 1.7;
     margin-bottom: 32px;
     max-width: 440px;
 }

 .offer-list {
     list-style: none;
     margin-bottom: 32px;
     display: flex;
     flex-direction: column;
     gap: 10px;
 }

 .offer-list li {
     display: flex;
     align-items: center;
     gap: 12px;
     font-size: 0.95rem;
     opacity: 0.9;
 }

 .offer-list li .check {
     color: #A5D6A7;
     font-size: 1rem;
 }

 .btn-offer {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: white;
     color: var(--green-dark);
     padding: 14px 32px;
     border-radius: var(--radius-lg);
     font-weight: 700;
     font-size: 1rem;
     text-decoration: none;
     transition: transform 0.25s, box-shadow 0.25s;
     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
 }

 .btn-offer:hover {
     transform: translateY(-3px);
     box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
 }

 .offer-visual {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 16px;
 }

 .offer-img-card {
     border-radius: var(--radius-md);
     overflow: hidden;
     position: relative;
     box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
     transition: transform 0.3s;
 }

 .offer-img-card:hover {
     transform: scale(1.04);
 }

 .offer-img-card.span2 {
     grid-column: span 2;
 }

 .offer-img-card img {
     width: 100%;
     height: 160px;
     object-fit: cover;
     display: block;
 }

 .offer-img-card.span2 img {
     height: 120px;
 }

 .offer-tag {
     position: absolute;
     top: 10px;
     left: 10px;
     background: #FFD54F;
     color: #3E2723;
     border-radius: 20px;
     padding: 4px 10px;
     font-size: 0.72rem;
     font-weight: 800;
 }

 /* ─── ABOUT ──────────────────────────────── */
 #about {
     background: var(--off-white);
 }

 .about-inner {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 60px;
     align-items: center;
 }

 .about-img-collage {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 16px;
     position: relative;
 }

 .about-img-card {
     border-radius: var(--radius-md);
     overflow: hidden;
     box-shadow: var(--shadow-green);
     transition: transform 0.3s;
 }

 .about-img-card:hover {
     transform: translateY(-6px);
 }

 .about-img-card img {
     width: 100%;
     object-fit: cover;
     display: block;
     height: 180px;
 }

 .about-img-card.tall {
     grid-row: span 2;
 }

 .about-img-card.tall img {
     height: 380px;
 }

 .about-floating-badge {
     position: absolute;
     bottom: -20px;
     right: -20px;
     background: var(--green-dark);
     color: white;
     border-radius: var(--radius-md);
     padding: 18px 22px;
     text-align: center;
     box-shadow: 0 6px 24px rgba(46, 125, 50, 0.4);
     z-index: 3;
 }

 .about-floating-badge .big {
     font-family: 'Playfair Display', serif;
     font-size: 2rem;
     font-weight: 900;
 }

 .about-floating-badge .small {
     font-size: 0.75rem;
     opacity: 0.85;
     font-weight: 500;
 }

 .about-highlights {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 16px;
     margin: 32px 0;
 }

 .highlight-pill {
     display: flex;
     align-items: center;
     gap: 12px;
     background: white;
     border-radius: var(--radius-sm);
     padding: 14px 16px;
     border: 1px solid #e4ede4;
     box-shadow: var(--shadow-soft);
     transition: transform 0.2s, box-shadow 0.2s;
 }

 .highlight-pill:hover {
     transform: translateY(-3px);
     box-shadow: var(--shadow-green);
 }

 .highlight-pill .icon {
     width: 42px;
     height: 42px;
     background: linear-gradient(135deg, var(--green-xpale), var(--green-pale));
     border-radius: 12px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 18px;
     flex-shrink: 0;
 }

 .highlight-pill .text h4 {
     font-size: 0.88rem;
     font-weight: 700;
     color: var(--text-dark);
 }

 .highlight-pill .text p {
     font-size: 0.75rem;
     color: #7a9a7c;
 }

 /* ─── CONTACT ────────────────────────────── */
 #contact {
     background: white;
 }

 .contact-inner {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 60px;
     align-items: start;
 }

 .contact-card {
     background: var(--off-white);
     border: 1.5px solid #e4ede4;
     border-radius: var(--radius-md);
     padding: 28px;
     display: flex;
     align-items: flex-start;
     gap: 20px;
     transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
     text-decoration: none;
     color: inherit;
     margin-bottom: 20px;
 }

 .contact-card:hover {
     transform: translateY(-5px);
     box-shadow: var(--shadow-green);
     border-color: var(--green-light);
 }

 .contact-icon {
     width: 54px;
     height: 54px;
     border-radius: 16px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 22px;
     flex-shrink: 0;
 }

 .contact-icon.phone {
     background: linear-gradient(135deg, #E8F5E9, #C8E6C9);
     color: var(--green-dark);
 }

 .contact-icon.email {
     background: linear-gradient(135deg, #FFF3E0, #FFE0B2);
     color: #E65100;
 }

 .contact-icon.location {
     background: linear-gradient(135deg, #E3F2FD, #BBDEFB);
     color: #1565C0;
 }

 .contact-card h4 {
     font-size: 0.82rem;
     font-weight: 600;
     color: #8a9a8c;
     margin-bottom: 4px;
     text-transform: uppercase;
     letter-spacing: 1px;
 }

 .contact-card p {
     font-size: 1rem;
     font-weight: 600;
     color: var(--text-dark);
 }

 .contact-card small {
     font-size: 0.78rem;
     color: #9aaa9c;
 }

 .contact-map-placeholder {
     border-radius: var(--radius-md);
     overflow: hidden;
     height: 300px;
     background: linear-gradient(135deg, #E8F5E9, #C8E6C9);
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     gap: 16px;
     border: 1.5px solid #d4e4d4;
 }

 .contact-map-placeholder i {
     font-size: 3rem;
     color: var(--green-mid);
 }

 .contact-map-placeholder p {
     color: var(--green-dark);
     font-weight: 600;
     font-size: 1.1rem;
 }

 .contact-map-placeholder span {
     font-size: 0.85rem;
     color: #6a8a6c;
     text-align: center;
     max-width: 250px;
     line-height: 1.6;
 }

 /* Social row */
 .social-row {
     display: flex;
     gap: 12px;
     margin-top: 10px;
     flex-wrap: wrap;
 }

 .social-btn {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     padding: 10px 20px;
     border-radius: 50px;
     font-weight: 600;
     font-size: 0.88rem;
     text-decoration: none;
     transition: transform 0.2s, box-shadow 0.2s;
 }

 .social-btn:hover {
     transform: translateY(-2px);
 }

 .social-btn.wa {
     background: #25D366;
     color: white;
     box-shadow: 0 4px 16px rgba(37, 211, 102, 0.35);
 }

 .social-btn.ig {
     background: linear-gradient(135deg, #833ab4, #fd1d1d, #fcb045);
     color: white;
     box-shadow: 0 4px 16px rgba(131, 58, 180, 0.35);
 }

 /* ─── FOOTER ─────────────────────────────── */
 footer {
     background: linear-gradient(160deg, #1B3A1C 0%, #1B5E20 100%);
     color: white;
     padding: 60px 7% 30px;
 }

 .footer-grid {
     display: grid;
     grid-template-columns: 2fr 1fr 1fr;
     gap: 48px;
     margin-bottom: 48px;
 }

 .footer-brand .logo-text {
     font-family: 'Playfair Display', serif;
     font-size: 1.6rem;
     font-weight: 900;
     margin-bottom: 12px;
 }

 .footer-brand p {
     opacity: 0.7;
     font-size: 0.9rem;
     line-height: 1.7;
     max-width: 280px;
 }

 .footer-social {
     display: flex;
     gap: 12px;
     margin-top: 20px;
 }

 .footer-social a {
     width: 40px;
     height: 40px;
     background: rgba(255, 255, 255, 0.1);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     color: white;
     text-decoration: none;
     font-size: 16px;
     transition: background 0.2s, transform 0.2s;
 }

 .footer-social a:hover {
     background: var(--green-light);
     transform: translateY(-3px);
 }

 .footer-col h5 {
     font-size: 0.9rem;
     font-weight: 700;
     margin-bottom: 20px;
     opacity: 0.9;
     text-transform: uppercase;
     letter-spacing: 1px;
 }

 .footer-col ul {
     list-style: none;
     display: flex;
     flex-direction: column;
     gap: 10px;
 }

 .footer-col ul a {
     color: rgba(255, 255, 255, 0.65);
     text-decoration: none;
     font-size: 0.88rem;
     transition: color 0.2s, padding-left 0.2s;
 }

 .footer-col ul a:hover {
     color: var(--green-pale);
     padding-left: 6px;
 }

 .footer-bottom {
     border-top: 1px solid rgba(255, 255, 255, 0.1);
     padding-top: 24px;
     display: flex;
     justify-content: space-between;
     align-items: center;
     font-size: 0.82rem;
     opacity: 0.6;
     flex-wrap: wrap;
     gap: 8px;
 }

 /* ─── FLOATING WHATSAPP ──────────────────── */
 .whatsapp-float {
     position: fixed;
     bottom: 28px;
     right: 28px;
     z-index: 999;
     display: flex;
     flex-direction: column;
     align-items: flex-end;
     gap: 10px;
 }

 .wa-label {
     background: white;
     color: var(--text-dark);
     border-radius: 20px;
     padding: 6px 14px;
     font-size: 0.82rem;
     font-weight: 600;
     box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
     opacity: 0;
     transform: translateX(10px);
     transition: opacity 0.3s, transform 0.3s;
     pointer-events: none;
 }

 .whatsapp-float:hover .wa-label {
     opacity: 1;
     transform: translateX(0);
 }

 .wa-btn {
     width: 60px;
     height: 60px;
     background: #25D366;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     color: white;
     font-size: 26px;
     box-shadow: 0 6px 24px rgba(37, 211, 102, 0.5);
     text-decoration: none;
     transition: transform 0.25s;
     animation: waBounce 3s ease-in-out infinite;
 }

 .wa-btn:hover {
     transform: scale(1.12);
     animation: none;
 }

 @keyframes waBounce {

     0%,
     100% {
         transform: translateY(0);
     }

     50% {
         transform: translateY(-8px);
     }
 }

 /* ─── ANIMATIONS (scroll reveal) ────────── */
 .reveal {
     opacity: 0;
     transform: translateY(40px);
     transition: opacity 0.7s ease, transform 0.7s ease;
 }

 .reveal.visible {
     opacity: 1;
     transform: translateY(0);
 }

 .reveal-left {
     opacity: 0;
     transform: translateX(-40px);
     transition: opacity 0.7s ease, transform 0.7s ease;
 }

 .reveal-left.visible {
     opacity: 1;
     transform: translateX(0);
 }

 .reveal-right {
     opacity: 0;
     transform: translateX(40px);
     transition: opacity 0.7s ease, transform 0.7s ease;
 }

 .reveal-right.visible {
     opacity: 1;
     transform: translateX(0);
 }

 /* stagger */
 .stagger-1 {
     transition-delay: 0.1s;
 }

 .stagger-2 {
     transition-delay: 0.2s;
 }

 .stagger-3 {
     transition-delay: 0.3s;
 }

 .stagger-4 {
     transition-delay: 0.4s;
 }

 .stagger-5 {
     transition-delay: 0.5s;
 }

 .stagger-6 {
     transition-delay: 0.6s;
 }

 @keyframes pulse-dot {

     0%,
     100% {
         opacity: 1;
         transform: scale(1);
     }

     50% {
         opacity: 0.5;
         transform: scale(1.4);
     }
 }

 /* ─── MOBILE MENU ────────────────────────── */
 .mobile-menu {
     position: fixed;
     top: 70px;
     left: 0;
     right: 0;
     background: rgba(255, 255, 255, 0.97);
     backdrop-filter: blur(16px);
     z-index: 999;
     padding: 24px 7%;
     transform: translateY(-110%);
     transition: transform 0.35s ease;
     border-bottom: 1px solid #e4ede4;
 }

 .mobile-menu.open {
     transform: translateY(0);
 }

 .mobile-menu ul {
     list-style: none;
     display: flex;
     flex-direction: column;
     gap: 20px;
 }

 .mobile-menu ul a {
     text-decoration: none;
     font-size: 1rem;
     color: var(--text-dark);
     font-weight: 500;
 }

 .mobile-menu .mob-cta {
     margin-top: 20px;
 }

 /* ─── RESPONSIVE ─────────────────────────── */
 @media (max-width: 900px) {
     #hero {
         grid-template-columns: 1fr;
         text-align: center;
         padding: 100px 5% 60px;
         gap: 40px;
     }

     #hero::before,
     #hero::after {
         display: none;
     }

     .hero-sub {
         margin: 0 auto 36px;
     }

     .hero-btns {
         justify-content: center;
     }

     .hero-stats {
         justify-content: center;
     }

     .hero-visuals {
         max-width: 440px;
         margin: 0 auto;
     }

     .offer-inner,
     .about-inner,
     .contact-inner {
         grid-template-columns: 1fr;
         gap: 40px;
     }

     .offer-visual {
         display: none;
     }

     .footer-grid {
         grid-template-columns: 1fr 1fr;
     }

     .about-floating-badge {
         right: 0;
     }
 }

 @media (max-width: 640px) {
     section {
         padding: 70px 5%;
     }

     .nav-links,
     .nav-cta {
         display: none;
     }

     .hamburger {
         display: flex;
     }

     .cat-grid {
         grid-template-columns: 1fr 1fr;
         gap: 16px;
     }

     .footer-grid {
         grid-template-columns: 1fr;
         gap: 32px;
     }

     .hero-visuals {
         grid-template-columns: 1fr 1fr;
     }

     .about-img-collage {
         grid-template-columns: 1fr 1fr;
     }

     .about-highlights {
         grid-template-columns: 1fr;
     }

     .footer-bottom {
         flex-direction: column;
         text-align: center;
     }
 }

 @media (max-width: 420px) {
     .cat-grid {
         grid-template-columns: 1fr;
     }
 }

 /* ─── OVERFLOW / SHRINK FIX ───────────────
       Grid & flex children default to min-width:auto, so on small
       screens they refuse to shrink below their content's natural
       width — this pushes cards past the viewport edge and causes
       sideways scrolling / cut-off layout. Forcing min-width:0 lets
       every column/card shrink to fit its track, and long
       unbreakable strings (like the email address) are allowed to
       wrap instead of stretching their box. */
 html,
 body {
     max-width: 100%;
     overflow-x: hidden;
 }

 img,
 svg,
 video {
     max-width: 100%;
     height: auto;
     display: block;
 }

 #hero,
 #hero>*,
 .hero-visuals,
 .hero-visuals>*,
 .offer-inner,
 .offer-inner>*,
 .offer-visual,
 .offer-visual>*,
 .about-inner,
 .about-inner>*,
 .about-img-collage,
 .about-img-collage>*,
 .about-highlights,
 .about-highlights>*,
 .contact-inner,
 .contact-inner>*,
 .cat-grid,
 .cat-grid>*,
 .footer-grid,
 .footer-grid>*,
 .contact-card,
 .contact-card>div,
 .highlight-pill,
 .highlight-pill .text,
 .social-row,
 .social-row>*,
 .hero-btns,
 .hero-btns>*,
 .offer-list,
 .offer-list li {
     min-width: 0;
 }

 .contact-card p,
 .contact-card small,
 .contact-card h4,
 .about-floating-badge,
 .hero-sub,
 .section-sub,
 .offer-sub {
     overflow-wrap: break-word;
     word-break: break-word;
 }

 /* about-img-card.tall has a fixed 380px image height meant for
       desktop two-column collages — on narrow phones that forces
       the whole card (and section) taller/wider than intended.
       Scale it down gracefully instead. */
 @media (max-width: 640px) {
     .about-img-card img {
         height: 140px;
     }

     .about-img-card.tall img {
         height: 300px;
     }

     .about-floating-badge {
         padding: 12px 16px;
         right: 8px;
         bottom: -14px;
     }

     .about-floating-badge .big {
         font-size: 1.4rem;
     }
 }

 @media (max-width: 400px) {
     .hero-stats {
         gap: 20px;
         flex-wrap: wrap;
     }

     .offer-badge {
         flex-wrap: wrap;
     }
 }