/* ===========================================================
   SIDRA ENTERPRISES — Main Stylesheet
   Design system: deep steel blue + burnt-copper accent,
   condensed industrial display type, mono "dimension tag"
   badges styled after the hand-chalked size marks the yard
   writes on every plate.
=========================================================== */

:root {

   /* -- Palette -- */
   --primary: #0F4C78;
   --primary-dark: #0A3757;
   --primary-light: #1D6FA5;
   --accent: #C1701F;
   --accent-light: #E3A15A;
   --ink: #1C2430;
   --gray: #5B6472;
   --gray-light: #8B93A0;
   --line: #E4DFD4;
   --bg: #F7F4EE;
   --bg-alt: #EFEAE0;
   --white: #FFFFFF;

   /* -- Type -- */
   --font-display: 'Oswald', sans-serif;
   --font-body: 'Inter', sans-serif;
   --font-mono: 'Roboto Mono', monospace;

   /* -- Misc -- */
   --shadow-sm: 0 2px 10px rgba(20, 30, 45, .06);
   --shadow: 0 18px 44px rgba(15, 40, 65, .12);
   --shadow-lg: 0 28px 70px rgba(15, 40, 65, .18);
   --radius: 6px;
   --clip: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
   --clip-sm: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
   --transition: .3s cubic-bezier(.4, 0, .2, 1);
}

/* ===========================
   RESET / BASE
=========================== */

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

html {
   scroll-behavior: smooth;
}

body {
   font-family: var(--font-body);
   background: var(--bg);
   color: var(--ink);
   overflow-x: hidden;
   line-height: 1.7;
   font-size: 16px;
}

img {
   width: 100%;
   display: block;
}

a {
   text-decoration: none;
   color: inherit;
}

ul {
   list-style: none;
}

button {
   font-family: var(--font-body);
   cursor: pointer;
   border: none;
   background: none;
}

input, select, textarea {
   font-family: var(--font-body);
}

section {
   padding: 96px 8%;
   position: relative;
}

.container {
   max-width: 1280px;
   margin: auto;
}

h1, h2, h3, h4 {
   font-family: var(--font-display);
   text-transform: uppercase;
   letter-spacing: .3px;
   color: var(--primary-dark);
   line-height: 1.15;
}

::selection {
   background: var(--accent);
   color: var(--white);
}

:focus-visible {
   outline: 3px solid var(--accent);
   outline-offset: 2px;
}

/* ===========================
   LOADER
=========================== */

#loader {
   position: fixed;
   inset: 0;
   background: var(--bg);
   display: flex;
   justify-content: center;
   align-items: center;
   z-index: 99999;
   transition: opacity .5s ease, visibility .5s ease;
}

#loader.hidden {
   opacity: 0;
   visibility: hidden;
   pointer-events: none;
}

#loader::after {
   content: "";
   width: 54px;
   height: 54px;
   border-radius: 50%;
   border: 5px solid var(--line);
   border-top: 5px solid var(--accent);
   animation: spin .9s linear infinite;
}

@keyframes spin {
   100% { transform: rotate(360deg); }
}

/* ===========================
   DIMENSION TAG (signature element)
   Styled after the chalk size-marks on stock: 545X45 etc.
=========================== */

.tag {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   font-family: var(--font-mono);
   font-size: .78rem;
   font-weight: 500;
   letter-spacing: .5px;
   text-transform: uppercase;
   color: var(--accent);
   background: rgba(193, 112, 31, .09);
   border: 1px solid rgba(193, 112, 31, .35);
   padding: 7px 14px;
   border-radius: 3px;
}

.tag::before {
   content: "\2685";
   font-family: initial;
   opacity: .8;
}

/* ===========================
   HEADER / NAV
=========================== */

header {
   position: fixed;
   width: 100%;
   top: 0;
   left: 0;
   z-index: 999;
   background: rgba(247, 244, 238, .92);
   backdrop-filter: blur(10px);
   border-bottom: 1px solid var(--line);
}

.navbar {
   max-width: 1280px;
   margin: auto;
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 18px 8%;
}

.logo {
   font-family: var(--font-display);
   font-size: 1.5rem;
   font-weight: 600;
   letter-spacing: 1px;
   color: var(--primary-dark);
   text-transform: uppercase;
   white-space: nowrap;
}

.logo span {
   color: var(--accent);
}

.nav-links {
   display: flex;
   gap: 38px;
}

.nav-links a {
   font-family: var(--font-display);
   font-size: .92rem;
   font-weight: 500;
   letter-spacing: .6px;
   text-transform: uppercase;
   color: var(--gray);
   position: relative;
   padding: 6px 0;
   transition: color var(--transition);
}

.nav-links a::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: 0;
   width: 0;
   height: 2px;
   background: var(--accent);
   transition: width var(--transition);
}

.nav-links a:hover,
.nav-links a.active {
   color: var(--primary-dark);
}

.nav-links a:hover::after,
.nav-links a.active::after {
   width: 100%;
}

.nav-buttons .call-btn {
   font-family: var(--font-display);
   font-size: .88rem;
   letter-spacing: .5px;
   text-transform: uppercase;
   background: var(--primary);
   color: var(--white);
   padding: 12px 26px;
   clip-path: var(--clip-sm);
   transition: background var(--transition);
}

.nav-buttons .call-btn:hover {
   background: var(--accent);
}

.menu-btn {
   display: none;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   font-size: 1.4rem;
   color: var(--primary-dark);
   cursor: pointer;
   z-index: 1001;
}

.menu-btn.active i::before {
   content: "\f00d";
}

/* ===========================
   BUTTONS
=========================== */

.btn-primary,
.btn-secondary,
.btn-outline {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   font-family: var(--font-display);
   font-size: .92rem;
   font-weight: 500;
   letter-spacing: .6px;
   text-transform: uppercase;
   padding: 15px 30px;
   clip-path: var(--clip-sm);
   transition: all var(--transition);
   border: 2px solid transparent;
}

.btn-primary {
   background: var(--accent);
   color: var(--white);
}

.btn-primary:hover {
   background: var(--primary);
   transform: translateY(-2px);
   box-shadow: var(--shadow);
}

.btn-secondary {
   background: var(--bg-alt);
   color: var(--primary-dark);
   border-color: var(--line);
}

.btn-secondary:hover {
   background: var(--line);
}

.btn-outline {
   background: transparent;
   color: var(--white);
   border-color: rgba(255, 255, 255, .5);
}

.btn-outline:hover {
   background: var(--white);
   color: var(--primary-dark);
   border-color: var(--white);
}

/* ===========================
   HERO (homepage)
=========================== */

.hero {
   padding-top: 168px;
   padding-bottom: 80px;
   background: linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
   position: relative;
   overflow: hidden;
}

.hero::before {
   content: "";
   position: absolute;
   top: -120px;
   right: -120px;
   width: 480px;
   height: 480px;
   background: radial-gradient(circle, rgba(193, 112, 31, .1) 0%, transparent 70%);
   pointer-events: none;
}

.hero-container {
   display: grid;
   grid-template-columns: 1.05fr .95fr;
   gap: 64px;
   align-items: center;
}

.hero-badge {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   font-family: var(--font-display);
   font-size: .82rem;
   letter-spacing: 1px;
   text-transform: uppercase;
   color: var(--accent);
   background: var(--white);
   border: 1px solid var(--line);
   padding: 9px 18px;
   border-radius: 999px;
   box-shadow: var(--shadow-sm);
   margin-bottom: 26px;
}

.hero-left h1 {
   font-size: 3.4rem;
   font-weight: 600;
   margin-bottom: 22px;
}

.hero-left p {
   color: var(--gray);
   font-size: 1.08rem;
   max-width: 520px;
   margin-bottom: 34px;
}

.hero-buttons {
   display: flex;
   gap: 18px;
   margin-bottom: 44px;
}

.hero-features {
   display: flex;
   gap: 30px;
   flex-wrap: wrap;
}

.hero-features div {
   display: flex;
   align-items: center;
   gap: 9px;
   font-size: .92rem;
   font-weight: 500;
   color: var(--primary-dark);
}

.hero-features i {
   color: var(--accent);
}

.hero-right {
   position: relative;
}

.hero-slider {
   position: relative;
   border-radius: var(--radius);
   overflow: hidden;
   clip-path: var(--clip);
   box-shadow: var(--shadow-lg);
   aspect-ratio: 4/5;
}

.hero-slider .slide {
   position: absolute;
   inset: 0;
   opacity: 0;
   transition: opacity .8s ease;
}

.hero-slider .slide.active {
   opacity: 1;
}

.hero-slider .slide img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.hero-slider::after {
   content: "";
   position: absolute;
   inset: 0;
   background: linear-gradient(180deg, rgba(10, 25, 40, 0) 55%, rgba(10, 25, 40, .55) 100%);
   pointer-events: none;
}

.prev-slide,
.next-slide {
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   width: 42px;
   height: 42px;
   background: rgba(255, 255, 255, .9);
   color: var(--primary-dark);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   z-index: 3;
   transition: background var(--transition);
}

.prev-slide { left: 16px; }
.next-slide { right: 16px; }

.prev-slide:hover,
.next-slide:hover {
   background: var(--accent);
   color: var(--white);
}

.slider-dots {
   position: absolute;
   bottom: 20px;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   gap: 8px;
   z-index: 3;
}

.slider-dots .dot {
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .5);
   cursor: pointer;
   transition: var(--transition);
}

.slider-dots .dot.active {
   background: var(--accent);
   width: 22px;
   border-radius: 4px;
}

/* ===========================
   TRUST BAR
=========================== */

.trust-bar {
   padding: 0 8%;
   margin-top: -34px;
   position: relative;
   z-index: 5;
}

.trust-grid {
   background: var(--primary-dark);
   border-radius: var(--radius);
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   box-shadow: var(--shadow-lg);
}

.trust-item {
   display: flex;
   align-items: center;
   gap: 16px;
   padding: 30px 26px;
   border-right: 1px solid rgba(255, 255, 255, .12);
}

.trust-item:last-child { border-right: none; }

.trust-item i {
   font-size: 1.6rem;
   color: var(--accent-light);
}

.trust-item h3 {
   color: var(--white);
   font-size: 1.3rem;
   margin-bottom: 2px;
}

.trust-item p {
   color: rgba(255, 255, 255, .65);
   font-size: .85rem;
   text-transform: none;
}

/* ===========================
   SECTION TITLE (shared)
=========================== */

.section-title {
   text-align: center;
   max-width: 640px;
   margin: 0 auto 56px;
}

.section-title .tag {
   margin-bottom: 16px;
}

.section-title h2 {
   font-size: 2.3rem;
   font-weight: 600;
   margin-bottom: 14px;
}

.section-title p {
   color: var(--gray);
   font-size: 1.02rem;
}

/* ===========================
   ABOUT PREVIEW (home)
=========================== */

.about-preview {
   background: var(--bg);
}

.about-grid {
   display: grid;
   grid-template-columns: .85fr 1.15fr;
   gap: 64px;
   align-items: center;
}

.about-image {
   position: relative;
   clip-path: var(--clip);
   box-shadow: var(--shadow);
   overflow: hidden;
}

.about-image img {
   aspect-ratio: 4/5;
   object-fit: cover;
}

.about-content .tag {
   margin-bottom: 18px;
}

.about-content h2 {
   font-size: 2.1rem;
   font-weight: 600;
   margin-bottom: 20px;
}

.about-content p {
   color: var(--gray);
   margin-bottom: 16px;
}

.about-content .btn-primary {
   margin-top: 12px;
}

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

.about-points div {
   display: flex;
   align-items: center;
   gap: 10px;
   font-size: .95rem;
   font-weight: 500;
   color: var(--primary-dark);
}

.about-points i {
   color: var(--accent);
}

/* ===========================
   PRODUCTS PREVIEW (home) & PRODUCTS GRID (shared)
=========================== */

.products-preview {
   background: var(--bg-alt);
}

.products-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px;
}

.product-card {
   background: var(--white);
   clip-path: var(--clip);
   box-shadow: var(--shadow-sm);
   overflow: hidden;
   transition: transform var(--transition), box-shadow var(--transition);
   display: flex;
   flex-direction: column;
}

.product-card:hover {
   transform: translateY(-6px);
   box-shadow: var(--shadow);
}

.product-image {
   aspect-ratio: 4/3;
   object-fit: cover;
}

.product-content {
   padding: 26px 28px 30px;
   flex: 1;
   display: flex;
   flex-direction: column;
}

.product-content h3 {
   font-size: 1.25rem;
   margin-bottom: 10px;
}

.product-content p {
   color: var(--gray);
   font-size: .92rem;
   margin-bottom: 14px;
}

.product-content ul {
   margin-bottom: 18px;
}

.product-content ul li {
   font-size: .88rem;
   color: var(--primary-dark);
   padding: 4px 0;
}

.product-content .btn-primary {
   margin-top: auto;
   align-self: flex-start;
   padding: 12px 24px;
   font-size: .82rem;
}

/* ===========================
   INDUSTRIES (home)
=========================== */

.industries {
   background: var(--bg);
}

.industries-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 20px;
}

.industry-card {
   text-align: center;
   background: var(--white);
   border: 1px solid var(--line);
   padding: 34px 20px;
   border-radius: var(--radius);
   transition: var(--transition);
}

.industry-card:hover {
   border-color: var(--accent);
   transform: translateY(-4px);
}

.industry-card i {
   font-size: 1.8rem;
   color: var(--primary);
   margin-bottom: 14px;
}

.industry-card h3 {
   font-size: .98rem;
   font-weight: 500;
}

/* ===========================
   WHY US (shared across pages)
=========================== */

.why-us {
   background: var(--bg);
}

.why-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 26px;
}

.why-card {
   text-align: center;
   padding: 40px 26px;
   background: var(--white);
   border-radius: var(--radius);
   box-shadow: var(--shadow-sm);
   transition: var(--transition);
}

.why-card:hover {
   transform: translateY(-6px);
   box-shadow: var(--shadow);
}

.why-card i {
   font-size: 1.9rem;
   color: var(--accent);
   margin-bottom: 18px;
}

.why-card h3 {
   font-size: 1.1rem;
   margin-bottom: 10px;
}

.why-card p {
   color: var(--gray);
   font-size: .92rem;
   text-transform: none;
}

/* ===========================
   STATS
=========================== */

.stats {
   background: var(--primary-dark);
   position: relative;
   overflow: hidden;
}

.stats::before {
   content: "";
   position: absolute;
   inset: 0;
   background: radial-gradient(circle at 20% 30%, rgba(193, 112, 31, .18), transparent 55%);
}

.stats-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 30px;
   text-align: center;
   position: relative;
}

.stat-box h2 {
   font-family: var(--font-display);
   font-size: 3rem;
   color: var(--white);
   margin-bottom: 8px;
}

.stat-box p {
   color: rgba(255, 255, 255, .65);
   font-size: .92rem;
   letter-spacing: .5px;
   text-transform: uppercase;
}

/* ===========================
   GALLERY PREVIEW (home)
=========================== */

.gallery-preview {
   background: var(--bg-alt);
}

.gallery-preview-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   grid-auto-rows: 190px;
   gap: 14px;
}

.gallery-preview-grid a {
   position: relative;
   overflow: hidden;
   border-radius: var(--radius);
}

.gallery-preview-grid a:first-child {
   grid-row: span 2;
   grid-column: span 2;
}

.gallery-preview-grid img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .5s ease;
}

.gallery-preview-grid a:hover img {
   transform: scale(1.08);
}

/* ===========================
   CTA
=========================== */

.cta {
   background: var(--primary);
   background-image: linear-gradient(120deg, var(--primary) 0%, var(--primary-dark) 100%);
   text-align: center;
   padding: 76px 8%;
}

.cta h2 {
   color: var(--white);
   font-size: 2rem;
   font-weight: 600;
   margin-bottom: 14px;
}

.cta p {
   color: rgba(255, 255, 255, .78);
   max-width: 560px;
   margin: 0 auto 30px;
   text-transform: none;
}

.cta a,
.cta .btn-primary {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   font-family: var(--font-display);
   font-size: .92rem;
   letter-spacing: .6px;
   text-transform: uppercase;
   background: var(--accent);
   color: var(--white);
   padding: 15px 34px;
   clip-path: var(--clip-sm);
   transition: var(--transition);
}

.cta a:hover {
   background: var(--white);
   color: var(--primary-dark);
}

/* ===========================
   FOOTER
=========================== */

footer {
   background: var(--ink);
   padding: 70px 8% 0;
}

.footer-grid {
   display: grid;
   grid-template-columns: 1.3fr 1fr 1.2fr;
   gap: 50px;
   padding-bottom: 46px;
   border-bottom: 1px solid rgba(255, 255, 255, .1);
}

footer h3 {
   color: var(--white);
   font-size: 1.05rem;
   margin-bottom: 18px;
}

footer p,
footer a {
   color: rgba(255, 255, 255, .58);
   font-size: .92rem;
   display: block;
   margin-bottom: 8px;
   text-transform: none;
   transition: color var(--transition);
}

footer a:hover {
   color: var(--accent-light);
}

.copyright {
   text-align: center;
   padding: 24px 0;
   color: rgba(255, 255, 255, .4);
   font-size: .84rem;
}

/* ===========================
   FLOATING BUTTONS
=========================== */

.whatsapp,
.call {
   position: fixed;
   right: 26px;
   width: 56px;
   height: 56px;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--white);
   font-size: 1.4rem;
   z-index: 500;
   box-shadow: var(--shadow);
   transition: transform var(--transition);
}

.whatsapp {
   bottom: 96px;
   background: #25D366;
}

.call {
   bottom: 26px;
   background: var(--accent);
}

.whatsapp:hover,
.call:hover {
   transform: scale(1.08);
}

/* ===========================
   PAGE HERO (inner pages)
=========================== */

.page-hero {
   padding: 190px 8% 90px;
   background: var(--primary-dark);
   background-image:
      radial-gradient(circle at 85% 20%, rgba(193, 112, 31, .25), transparent 55%),
      linear-gradient(120deg, var(--primary-dark), #0D3049);
   text-align: center;
}

.page-hero h1 {
   color: var(--white);
   font-size: 2.7rem;
   font-weight: 600;
   margin-bottom: 14px;
}

.page-hero p {
   color: rgba(255, 255, 255, .72);
   font-size: 1.05rem;
   max-width: 560px;
   margin: 0 auto;
   text-transform: none;
}

/* ===========================
   ABOUT PAGE
=========================== */

.about-company {
   background: var(--bg);
}

.mission {
   background: var(--bg-alt);
}

/* ===========================
   PRODUCTS PAGE
=========================== */

.products-page {
   background: var(--bg-alt);
   padding-top: 190px;
   padding-bottom: 50px;
}

.products-header {
   text-align: center;
   margin-bottom: 40px;
}

.products-header h1 {
   font-size: 2.6rem;
   margin-bottom: 10px;
}

.products-header p {
   color: var(--gray);
   text-transform: none;
}

.search-box {
   max-width: 480px;
   margin: 0 auto 30px;
}

.search-box input {
   width: 100%;
   padding: 15px 22px;
   border: 1px solid var(--line);
   border-radius: 999px;
   font-size: .95rem;
   background: var(--white);
}

.search-box input:focus {
   outline: none;
   border-color: var(--accent);
}

.filter-buttons {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 12px;
}

.filter-btn {
   font-family: var(--font-display);
   font-size: .85rem;
   letter-spacing: .5px;
   text-transform: uppercase;
   padding: 11px 22px;
   background: var(--white);
   color: var(--gray);
   border: 1px solid var(--line);
   border-radius: 999px;
   transition: var(--transition);
}

.filter-btn:hover {
   border-color: var(--accent);
   color: var(--accent);
}

.filter-btn.active {
   background: var(--primary);
   color: var(--white);
   border-color: var(--primary);
}

.products {
   background: var(--bg);
}

.product-card.hide {
   display: none;
}

.specifications {
   background: var(--bg-alt);
}

.spec-table {
   width: 100%;
   border-collapse: collapse;
   background: var(--white);
   box-shadow: var(--shadow-sm);
   border-radius: var(--radius);
   overflow: hidden;
}

.spec-table th {
   background: var(--primary-dark);
   color: var(--white);
   font-family: var(--font-display);
   font-weight: 500;
   letter-spacing: .5px;
   text-transform: uppercase;
   font-size: .85rem;
   padding: 16px 20px;
   text-align: left;
}

.spec-table td {
   padding: 16px 20px;
   border-bottom: 1px solid var(--line);
   font-size: .92rem;
   color: var(--gray);
}

.spec-table tr:last-child td {
   border-bottom: none;
}

.spec-table tr:hover td {
   background: var(--bg-alt);
   color: var(--ink);
}

/* Image modal */

.image-modal {
   position: fixed;
   inset: 0;
   background: rgba(10, 20, 32, .92);
   display: none;
   align-items: center;
   justify-content: center;
   z-index: 2000;
}

.image-modal.active {
   display: flex;
}

.modal-image {
   max-width: 80%;
   max-height: 80%;
   width: auto;
   border-radius: var(--radius);
}

.close-image {
   position: absolute;
   top: 26px;
   right: 34px;
   font-size: 2.2rem;
   color: var(--white);
   cursor: pointer;
}

.modal-prev,
.modal-next {
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   width: 48px;
   height: 48px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .12);
   color: var(--white);
   display: flex;
   align-items: center;
   justify-content: center;
}

.modal-prev:hover,
.modal-next:hover {
   background: var(--accent);
}

.modal-prev { left: 26px; }
.modal-next { right: 26px; }

/* ===========================
   GALLERY PAGE
=========================== */

.gallery-filter {
   background: var(--bg-alt);
   padding-top: 46px;
   padding-bottom: 20px;
}

.gallery {
   background: var(--bg-alt);
   padding-top: 20px;
}

.gallery-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 24px;
}

.gallery-item {
   position: relative;
   clip-path: var(--clip-sm);
   overflow: hidden;
   aspect-ratio: 4/3;
   box-shadow: var(--shadow-sm);
   cursor: pointer;
}

.gallery-item.hide {
   display: none;
}

.gallery-item img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .5s ease;
}

.gallery-item:hover img {
   transform: scale(1.1);
}

.gallery-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(180deg, rgba(10, 25, 40, 0) 45%, rgba(10, 25, 40, .82) 100%);
   display: flex;
   align-items: flex-end;
   padding: 20px;
   opacity: 0;
   transition: opacity var(--transition);
}

.gallery-item:hover .gallery-overlay {
   opacity: 1;
}

.gallery-overlay h3 {
   color: var(--white);
   font-size: 1.05rem;
}

.lightbox {
   position: fixed;
   inset: 0;
   background: rgba(10, 20, 32, .94);
   display: none;
   align-items: center;
   justify-content: center;
   z-index: 2000;
}

.lightbox.active {
   display: flex;
}

.lightbox img {
   max-width: 82%;
   max-height: 82%;
   width: auto;
   border-radius: var(--radius);
   box-shadow: var(--shadow-lg);
}

.close-lightbox {
   position: absolute;
   top: 26px;
   right: 34px;
   font-size: 2.2rem;
   color: var(--white);
   cursor: pointer;
}

.prev-btn,
.next-btn {
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   width: 48px;
   height: 48px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .12);
   color: var(--white);
   display: flex;
   align-items: center;
   justify-content: center;
}

.prev-btn:hover,
.next-btn:hover {
   background: var(--accent);
}

.prev-btn { left: 26px; }
.next-btn { right: 26px; }

/* ===========================
   CONTACT PAGE
=========================== */

.contact-hero {
   padding: 190px 8% 90px;
   background: var(--primary-dark);
   background-image:
      radial-gradient(circle at 85% 20%, rgba(193, 112, 31, .25), transparent 55%),
      linear-gradient(120deg, var(--primary-dark), #0D3049);
   text-align: center;
}

.contact-badge {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   font-family: var(--font-display);
   font-size: .82rem;
   letter-spacing: 1px;
   text-transform: uppercase;
   color: var(--accent-light);
   background: rgba(255, 255, 255, .08);
   border: 1px solid rgba(255, 255, 255, .18);
   padding: 9px 18px;
   border-radius: 999px;
   margin-bottom: 22px;
}

.contact-hero h1 {
   color: var(--white);
   font-size: 2.7rem;
   font-weight: 600;
   margin-bottom: 14px;
}

.contact-hero p {
   color: rgba(255, 255, 255, .72);
   font-size: 1.05rem;
   max-width: 560px;
   margin: 0 auto;
   text-transform: none;
}

.contact-section {
   background: var(--bg);
}

.contact-wrapper {
   display: grid;
   grid-template-columns: .8fr 1.2fr;
   gap: 50px;
}

.contact-info h2,
.contact-form-box h2 {
   font-size: 1.7rem;
   margin-bottom: 10px;
}

.contact-info > p,
.contact-form-box > p {
   color: var(--gray);
   text-transform: none;
   margin-bottom: 30px;
}

.contact-card {
   display: flex;
   gap: 18px;
   background: var(--white);
   padding: 22px 24px;
   border-radius: var(--radius);
   box-shadow: var(--shadow-sm);
   margin-bottom: 16px;
}

.contact-card i {
   font-size: 1.3rem;
   color: var(--accent);
   margin-top: 3px;
}

.contact-card h3 {
   font-size: 1rem;
   margin-bottom: 4px;
}

.contact-card p {
   color: var(--gray);
   font-size: .9rem;
   text-transform: none;
}

.contact-form-box {
   background: var(--white);
   padding: 40px;
   border-radius: var(--radius);
   box-shadow: var(--shadow);
}

.contact-form-box form {
   display: grid;
   gap: 16px;
}

.contact-form-box input,
.contact-form-box select,
.contact-form-box textarea {
   width: 100%;
   padding: 14px 18px;
   border: 1px solid var(--line);
   border-radius: var(--radius);
   font-size: .95rem;
   background: var(--bg);
   color: var(--ink);
}

.contact-form-box input:focus,
.contact-form-box select:focus,
.contact-form-box textarea:focus {
   outline: none;
   border-color: var(--accent);
   background: var(--white);
}

.contact-form-box textarea {
   min-height: 120px;
   resize: vertical;
}

.contact-btn {
   font-family: var(--font-display);
   font-size: .92rem;
   letter-spacing: .6px;
   text-transform: uppercase;
   background: var(--accent);
   color: var(--white);
   padding: 15px 30px;
   clip-path: var(--clip-sm);
   display: inline-flex;
   align-items: center;
   gap: 10px;
   justify-self: start;
   transition: var(--transition);
}

.contact-btn:hover {
   background: var(--primary);
}

#formMessage {
   font-size: .9rem;
   margin-top: 4px;
   font-weight: 500;
}

#formMessage.success { color: #1B7F4C; }
#formMessage.error { color: #C0392B; }

.secure-note {
   display: flex;
   align-items: center;
   gap: 10px;
   font-size: .84rem;
   color: var(--gray-light);
   margin-top: 20px;
   text-transform: none;
}

.map-section {
   background: var(--bg-alt);
}

.map-container {
   border-radius: var(--radius);
   overflow: hidden;
   box-shadow: var(--shadow);
   clip-path: var(--clip);
}

.section-divider {
   border: none;
   border-top: 1px solid var(--line);
   margin: 0 8%;
}

.faq {
   background: var(--bg-alt);
}

.faq-item {
   background: var(--white);
   border-radius: var(--radius);
   box-shadow: var(--shadow-sm);
   margin-bottom: 14px;
   overflow: hidden;
}

.faq-question {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 22px 26px;
   font-family: var(--font-display);
   font-weight: 500;
   letter-spacing: .3px;
   font-size: 1.02rem;
   color: var(--primary-dark);
   cursor: pointer;
}

.faq-question::after {
   content: "\002B";
   font-size: 1.3rem;
   color: var(--accent);
   transition: transform var(--transition);
   flex-shrink: 0;
   margin-left: 14px;
}

.faq-item.open .faq-question::after {
   transform: rotate(45deg);
}

.faq-answer {
   max-height: 0;
   overflow: hidden;
   transition: max-height var(--transition), padding var(--transition);
   padding: 0 26px;
}

.faq-item.open .faq-answer {
   max-height: 200px;
   padding: 0 26px 22px;
}

.faq-answer p {
   color: var(--gray);
   text-transform: none;
   font-size: .92rem;
}

/* ===========================
   CALCULATOR PAGE
=========================== */

.calculator-section {
   background: var(--bg);
}

.calculator-card {
   max-width: 760px;
   margin: 0 auto;
   background: var(--white);
   border-radius: var(--radius);
   box-shadow: var(--shadow);
   padding: 44px;
}

.calculator-header {
   text-align: center;
   margin-bottom: 28px;
}

.calculator-header h2 {
   font-size: 1.5rem;
}

.calculator-tabs {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   justify-content: center;
   margin-bottom: 30px;
}

.tab-btn {
   font-family: var(--font-display);
   font-size: .85rem;
   letter-spacing: .4px;
   text-transform: uppercase;
   padding: 11px 20px;
   background: var(--bg-alt);
   color: var(--gray);
   border-radius: 999px;
   transition: var(--transition);
}

.tab-btn.active {
   background: var(--primary);
   color: var(--white);
}

.calculator-form {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 18px;
   margin-bottom: 26px;
}

.input-group label {
   display: block;
   font-size: .84rem;
   font-weight: 500;
   color: var(--gray);
   margin-bottom: 8px;
   text-transform: uppercase;
   letter-spacing: .4px;
}

.input-group input {
   width: 100%;
   padding: 13px 16px;
   border: 1px solid var(--line);
   border-radius: var(--radius);
   background: var(--bg);
   font-size: .95rem;
}

.input-group input:focus {
   outline: none;
   border-color: var(--accent);
   background: var(--white);
}

.input-group.hide {
   display: none;
}

.formula-box {
   background: var(--bg-alt);
   border-left: 3px solid var(--accent);
   padding: 16px 20px;
   border-radius: 0 var(--radius) var(--radius) 0;
   margin-bottom: 30px;
}

.formula-box h3 {
   font-size: .82rem;
   letter-spacing: .5px;
   margin-bottom: 6px;
   color: var(--primary-dark);
}

.formula-box p {
   font-family: var(--font-mono);
   font-size: .86rem;
   color: var(--gray);
   text-transform: none;
}

.result-card {
   background: var(--primary-dark);
   background-image: radial-gradient(circle at 90% 10%, rgba(193, 112, 31, .3), transparent 55%);
   border-radius: var(--radius);
   padding: 30px;
   margin-bottom: 26px;
}

.result-card h2 {
   color: var(--white);
   font-size: 1.05rem;
   text-align: center;
   margin-bottom: 22px;
}

.result-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 20px;
}

.result-box {
   text-align: center;
}

.result-box h4 {
   color: rgba(255, 255, 255, .6);
   font-size: .78rem;
   letter-spacing: .5px;
   margin-bottom: 8px;
}

.result-box h1 {
   font-family: var(--font-mono);
   color: var(--white);
   font-size: 1.9rem;
   text-transform: none;
}

.calculator-buttons {
   display: flex;
   flex-wrap: wrap;
   gap: 14px;
   justify-content: center;
}

.calculator-buttons button {
   font-size: .85rem;
   padding: 13px 24px;
}

.calculator-info {
   background: var(--bg-alt);
   text-align: center;
}

.calculator-info h2 {
   font-size: 1.9rem;
   margin-bottom: 14px;
}

.calculator-info > p {
   color: var(--gray);
   text-transform: none;
   max-width: 620px;
   margin: 0 auto 46px;
}

.info-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 26px;
}

.info-card {
   background: var(--white);
   padding: 34px 26px;
   border-radius: var(--radius);
   box-shadow: var(--shadow-sm);
}

.info-card i {
   font-size: 1.7rem;
   color: var(--accent);
   margin-bottom: 14px;
}

.info-card h3 {
   font-size: 1rem;
   margin-bottom: 8px;
}

.info-card p {
   color: var(--gray);
   font-size: .9rem;
   text-transform: none;
}

/* ===========================
   SCROLL REVEAL
=========================== */

.reveal {
   opacity: 0;
   transform: translateY(24px);
   transition: opacity .7s ease, transform .7s ease;
}

.reveal.in-view {
   opacity: 1;
   transform: translateY(0);
}
