diff --git a/addons/theme_aakriti_v2/__init__.py b/addons/theme_aakriti_v2/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/addons/theme_aakriti_v2/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/addons/theme_aakriti_v2/__manifest__.py b/addons/theme_aakriti_v2/__manifest__.py new file mode 100644 index 0000000..e479dcb --- /dev/null +++ b/addons/theme_aakriti_v2/__manifest__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +{ + 'name': 'Aakriti Events - Premium Theme V2', + 'version': '17.0.1.0.0', + 'category': 'Theme/Creative', + 'summary': 'Premium dark-gold events theme for Aakriti Events website', + 'description': """ + Aakriti Events Premium Theme V2. + A fully standalone, luxurious dark-gold events theme featuring: + - Dramatic hero section with event photography + - Services grid (Wedding, Corporate, Birthday, Cultural, Stage, Brand Launch, Private Parties, Event Coordination) + - Gallery carousel, process steps, testimonials, stats and contact form + - Sticky header with gold CTA button and mobile-responsive drawer nav + - Dark footer with 4-column grid + Can be switched to from Website > Theme settings. + """, + 'author': 'Antigravity', + 'depends': ['website', 'event_rental'], + 'data': [ + 'views/website_v2_templates.xml', + ], + 'installable': True, + 'application': False, + 'auto_install': False, + 'license': 'LGPL-3', +} diff --git a/addons/theme_aakriti_v2/__pycache__/__init__.cpython-310.pyc b/addons/theme_aakriti_v2/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..fdfc943 Binary files /dev/null and b/addons/theme_aakriti_v2/__pycache__/__init__.cpython-310.pyc differ diff --git a/addons/theme_aakriti_v2/static/src/css/theme_v2.css b/addons/theme_aakriti_v2/static/src/css/theme_v2.css new file mode 100644 index 0000000..357445c --- /dev/null +++ b/addons/theme_aakriti_v2/static/src/css/theme_v2.css @@ -0,0 +1,2477 @@ +/* ============================================================ + AAKRITI EVENTS - PREMIUM THEME V2 + Color Palette: + Gold : #C9973A + Dark BG : #1e1208 + Cream BG : #fdf6e3 + White : #ffffff + Text Dark : #1a1206 + Text Muted : #6b5e4e + Fonts: Cormorant Garamond (display), Jost (body) + ============================================================ */ + +@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Jost:wght@300;400;500;600;700;800&family=Playball&display=swap'); + +/* ── CSS Variables ─────────────────────────────────────────── */ +:root { + --v2-gold: #C9973A; + --v2-gold-light: #e8b85a; + --v2-gold-dark: #a67c28; + --v2-dark: #1e1208; + --v2-dark2: #2d1f0e; + --v2-cream: #fdf6e3; + --v2-cream2: #f5ead0; + --v2-white: #ffffff; + --v2-text: #1a1206; + --v2-muted: #6b5e4e; + --v2-border: rgba(201, 151, 58, 0.25); + --v2-font-display: 'Cormorant Garamond', Georgia, serif; + --v2-font-body: 'Jost', sans-serif; + --v2-radius: 12px; + --v2-shadow: 0 8px 40px rgba(30, 18, 8, 0.12); + --v2-shadow-lg: 0 20px 60px rgba(30, 18, 8, 0.2); +} + +/* ── Global Reset for V2 pages ─────────────────────────────── */ +#wrapwrap, +#wrapwrap *, +#wrapwrap *::before, +#wrapwrap *::after { + box-sizing: border-box; +} + +#wrapwrap { + font-family: var(--v2-font-body) !important; + color: var(--v2-text); + background-color: var(--v2-cream) !important; + overflow-x: hidden; +} + +/* ── Typography ────────────────────────────────────────────── */ +.v2-display { + font-family: var(--v2-font-display); + line-height: 1.05; + letter-spacing: -0.01em; +} + +.v2-eyebrow { + font-family: var(--v2-font-body); + font-size: 0.72rem; + font-weight: 600; + letter-spacing: 0.35em; + text-transform: uppercase; + color: var(--v2-gold); +} + +.v2-section-title { + font-family: var(--v2-font-display); + font-size: clamp(2.2rem, 5vw, 3.5rem); + font-weight: 700; + line-height: 1.1; + color: var(--v2-text); +} + +.v2-italic-gold { + font-family: var(--v2-font-display); + font-style: italic; + color: var(--v2-gold); +} + +/* ── Buttons ───────────────────────────────────────────────── */ +.v2-btn-gold { + display: inline-flex; + align-items: center; + gap: 8px; + background-color: var(--v2-gold); + color: var(--v2-white) !important; + font-family: var(--v2-font-body); + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + padding: 13px 26px; + border-radius: 4px; + border: none; + cursor: pointer; + text-decoration: none !important; + transition: background-color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease; +} + +.v2-btn-gold:hover { + background-color: var(--v2-gold-dark); + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(201, 151, 58, 0.4); + color: var(--v2-white) !important; +} + +.v2-btn-outline { + display: inline-flex; + align-items: center; + gap: 8px; + background-color: transparent; + color: var(--v2-white) !important; + font-family: var(--v2-font-body); + font-size: 0.82rem; + font-weight: 600; + letter-spacing: 0.1em; + text-transform: uppercase; + padding: 12px 26px; + border-radius: 4px; + border: 1.5px solid rgba(255, 255, 255, 0.6); + cursor: pointer; + text-decoration: none !important; + transition: all 0.25s ease; +} + +.v2-btn-outline:hover { + background-color: rgba(255, 255, 255, 0.12); + border-color: var(--v2-white); + color: var(--v2-white) !important; +} + +.v2-btn-dark { + display: inline-flex; + align-items: center; + gap: 8px; + background-color: var(--v2-dark); + color: var(--v2-white) !important; + font-family: var(--v2-font-body); + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.1em; + text-transform: uppercase; + padding: 14px 32px; + border-radius: 4px; + border: none; + cursor: pointer; + text-decoration: none !important; + transition: all 0.25s ease; +} + +.v2-btn-dark:hover { + background-color: var(--v2-gold); + color: var(--v2-white) !important; + transform: translateY(-2px); +} + +/* ── HEADER ────────────────────────────────────────────────── */ +#v2-header { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 1000; + transition: background-color 0.3s ease, box-shadow 0.3s ease; + background: linear-gradient(to right, #F9F9F7 30%, #fff2d3 80%); + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05); +} + +#v2-header.scrolled { + background-color: rgba(255, 255, 255, 0.97); + box-shadow: 0 2px 20px rgba(30, 18, 8, 0.1); +} + +.v2-header-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + height: 76px; + display: flex; + align-items: center; + justify-content: space-between; +} + +.v2-logo img { + height: 52px; + width: auto; + object-fit: contain; +} + +.v2-nav { + display: flex; + align-items: center; + gap: 28px; +} + +.v2-nav a { + font-family: var(--v2-font-body); + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.08em; + color: var(--v2-text); + text-decoration: none !important; + transition: color 0.2s ease; + text-transform: uppercase; +} + +#v2-header.scrolled .v2-nav a { + color: var(--v2-text) !important; +} + +.v2-nav a:hover, +.v2-nav a.active { + color: var(--v2-gold); +} + +.v2-nav-cta { + background-color: var(--v2-gold) !important; + color: var(--v2-white) !important; + padding: 9px 20px !important; + border-radius: 4px; + font-weight: 700 !important; + letter-spacing: 0.1em !important; + transition: background-color 0.2s ease !important; +} + +.v2-nav-cta:hover { + background-color: var(--v2-gold-dark) !important; + color: var(--v2-white) !important; +} + +/* Mobile hamburger */ +#v2-mobile-toggle { + display: none; + background: none; + border: none; + cursor: pointer; + padding: 4px; + color: #1a1206; +} + +#v2-header.scrolled #v2-mobile-toggle { + color: var(--v2-text); +} + +@media (max-width: 991px) { + .v2-nav { + display: none !important; + } + + #v2-mobile-toggle { + display: flex !important; + } +} + +/* Mobile Drawer */ +#v2-mobile-drawer { + position: fixed; + top: 0; + right: 0; + width: min(340px, 90vw); + height: 100vh; + background: linear-gradient(to right, #F9F9F7 30%, #fff2d3 80%); + z-index: 2000; + transform: translateX(100%); + visibility: hidden; + transition: transform 0.32s ease, visibility 0.32s ease; + display: flex; + flex-direction: column; + box-shadow: -6px 0 30px rgba(30, 18, 8, 0.18); +} + +#v2-mobile-drawer.open { + transform: translateX(0); + visibility: visible; +} + +#v2-drawer-overlay { + position: fixed; + inset: 0; + background: rgba(30, 18, 8, 0.4); + z-index: 1999; + display: none; +} + +#v2-drawer-overlay.active { + display: block; +} + +.v2-drawer-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 20px 24px; + border-bottom: 1px solid var(--v2-border); +} + +.v2-drawer-nav { + flex: 1; + display: flex; + flex-direction: column; + padding: 28px 24px; + gap: 0; +} + +.v2-drawer-nav a { + font-family: var(--v2-font-display); + font-size: 1.5rem; + font-weight: 600; + color: var(--v2-text) !important; + text-decoration: none !important; + padding: 14px 0; + border-bottom: 1px solid rgba(201, 151, 58, 0.15); + transition: color 0.2s; +} + +.v2-drawer-nav a:hover { + color: var(--v2-gold) !important; +} + +.v2-drawer-footer { + padding: 20px 24px; +} + +/* ── HERO SECTION ──────────────────────────────────────────── */ +#v2-hero { + position: relative; + /* min-height: 100vh; */ + display: flex; + align-items: center; + overflow: hidden; + height:1000px; +} + +.v2-hero-bg { + position: absolute; + inset: 0; + background-image: url('/theme_aakriti_v2/static/src/img/hero-banner.png'); + background-size: cover; + background-position: center; + background-attachment: fixed; + transform: scale(1.05); + transition: transform 8s ease; +} + +#v2-hero:hover .v2-hero-bg { + transform: scale(1.0); +} + +.v2-hero-overlay { + position: absolute; + inset: 0; + /* background: linear-gradient(135deg, + rgba(30, 18, 8, 0.82) 0%, + rgba(30, 18, 8, 0.6) 50%, + rgba(30, 18, 8, 0.45) 100%); */ +} + +.v2-hero-content { + position: relative; + z-index: 2; + max-width: 1600px; + margin: 0 auto; + padding: 120px 32px 80px; + width: 100%; +} + +.v2-hero-eyebrow { + font-size: 0.72rem; + font-weight: 600; + letter-spacing: 0.4em; + text-transform: uppercase; + color: var(--v2-gold); + margin-bottom: 20px; + display: block; +} + +.v2-hero-title { + font-family: var(--v2-font-display); + font-size: clamp(3rem, 7vw, 6rem); + font-weight: 700; + color: var(--v2-white); + line-height: 1.05; + margin: 0 0 8px; + max-width: 720px; +} + +.v2-hero-title .gold-line { + color: var(--v2-gold); + font-style: italic; +} + +.v2-hero-sub { + font-family: var(--v2-font-body); + font-size: 0.95rem; + color: #1a1206; + max-width: 520px; + line-height: 1.75; + margin: 20px 0 36px; +} + +.v2-hero-btns { + display: flex; + flex-wrap: wrap; + gap: 14px; +} + +.v2-hero-scroll { + position: absolute; + bottom: 36px; + left: 50%; + transform: translateX(-50%); + z-index: 2; + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + animation: v2-bounce 2s infinite; +} + +.v2-hero-scroll span { + font-size: 0.6rem; + letter-spacing: 0.3em; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.5); +} + +@keyframes v2-bounce { + + 0%, + 100% { + transform: translateX(-50%) translateY(0); + } + + 50% { + transform: translateX(-50%) translateY(8px); + } +} + +@media (max-width: 767px) { + .v2-hero-content { + padding: 120px 10px 110px; + } + .v2-hero-bg{ + background-position: right center; +} + +.hero-title{ + color: #fff !important; +} +} + +/* ── FEATURES BAR ──────────────────────────────────────────── */ +#v2-features { + background: var(--v2-white); + /* box-shadow: var(--v2-shadow); */ + position: relative; + z-index: 10; +} + +.v2-features-grid { + max-width: 1600px; + margin: 0 auto; + padding: 40px 32px; + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 0; +} + +.v2-feature-item { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 20px 16px; + border-right: 1px solid rgba(201, 151, 58, 0.15); + transition: background-color 0.25s; +} + +.v2-feature-item:last-child { + border-right: none; +} + +.v2-feature-item:hover { + background-color: rgba(201, 151, 58, 0.04); +} + +.v2-feature-icon { + width: 44px; + height: 44px; + background: transparent; + border-radius: 0; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 12px; + flex-shrink: 0; +} + +.v2-feature-icon svg { + width: 32px; + height: 32px; + stroke: var(--v2-gold); + stroke-width: 1.5; + fill: none; +} + +.v2-feature-title { + font-family: var(--v2-font-body); + font-size: 0.82rem; + font-weight: 700; + color: var(--v2-text); + text-transform: uppercase; + letter-spacing: 0.06em; + margin-bottom: 6px; +} + +.v2-feature-desc { + font-size: 0.75rem; + color: var(--v2-muted); + line-height: 1.5; +} + +@media (max-width: 768px) { + .v2-features-grid { + grid-template-columns: repeat(2, 1fr); + gap: 1px; + background: var(--v2-border); + padding: 40px 15px; + } + + .v2-feature-item { + background: var(--v2-white); + border-right: none; + } +} + +/* ── SERVICES SECTION ──────────────────────────────────────── */ +#v2-services { + background-color: var(--v2-cream); + padding: 100px 0; +} + +.v2-services-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + display: grid; + grid-template-columns: 320px 1fr; + gap: 64px; + align-items: start; +} + +.v2-services-left .v2-eyebrow { + margin-bottom: 12px; + display: block; +} + +.v2-services-left .v2-section-title { + margin: 0 0 16px; +} + +.v2-services-left p { + font-size: 0.9rem; + color: var(--v2-muted); + line-height: 1.8; + margin: 0 0 32px; +} + +.v2-services-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 12px; +} + +.v2-service-card { + position: relative; + border-radius: 10px; + overflow: hidden; + cursor: pointer; + aspect-ratio: 4/3; + background-color: var(--v2-dark2); +} + +.v2-service-card img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; + display: block; +} + +.v2-service-card:hover img { + transform: scale(1.08); +} + +.v2-service-card-overlay { + position: absolute; + inset: 0; + background: linear-gradient(to top, rgba(30, 18, 8, 0.85) 0%, rgba(30, 18, 8, 0.1) 55%); + display: flex; + align-items: flex-end; + padding: 14px; + transition: background 0.3s; +} + +.v2-service-card:hover .v2-service-card-overlay { + background: linear-gradient(to top, rgba(201, 151, 58, 0.75) 0%, rgba(30, 18, 8, 0.2) 60%); +} + +.v2-service-card-name { + font-family: var(--v2-font-body); + font-size: 0.78rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--v2-white); + line-height: 1.3; +} + +/* Placeholder cards for missing images */ +.v2-service-card.v2-card-placeholder { + background: linear-gradient(135deg, var(--v2-dark2), var(--v2-dark)); +} + +.v2-card-placeholder-icon { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.3; +} + +.v2-card-placeholder-icon svg { + width: 48px; + height: 48px; + stroke: var(--v2-gold); + fill: none; +} + +@media (max-width: 1100px) { + .v2-services-inner { + grid-template-columns: 1fr; + gap: 40px; + } + + .v2-services-grid { + grid-template-columns: repeat(4, 1fr); + } +} + +@media (max-width: 767px) { + .v2-services-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +/* OLD gallery styles below - overridden by the section further down */ +#v2-gallery { + background: var(--v2-cream) !important; + padding: 80px 0 !important; + overflow: visible; +} + +.v2-gallery-header { + max-width: 1600px; + margin: 0 auto 40px; + padding: 0 32px; + display: flex; + align-items: flex-end; + justify-content: space-between; + flex-wrap: wrap; + gap: 20px; +} + +.v2-gallery-header .v2-eyebrow { + color: var(--v2-gold); + display: block; + margin-bottom: 10px; +} + +.v2-gallery-header .v2-section-title { + color: var(--v2-white); + margin: 0; +} + +.v2-gallery-header p { + color: rgba(255, 255, 255, 0.55); + font-size: 0.88rem; + margin: 10px 0 0; +} + +.v2-gallery-controls { + display: flex; + gap: 10px; +} + +.v2-gallery-arrow { + width: 46px; + height: 46px; + border-radius: 50%; + border: 1.5px solid rgba(201, 151, 58, 0.45); + background: transparent; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + color: var(--v2-white); + transition: all 0.25s ease; +} + +.v2-gallery-arrow:hover { + background: var(--v2-gold); + border-color: var(--v2-gold); +} + +.v2-gallery-arrow svg { + width: 18px; + height: 18px; + stroke: currentColor; + fill: none; +} + +.v2-gallery-track-wrap { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + overflow: hidden; +} + +/* old gallery track - not used on homepage v2 */ +.v2-gallery-track { + display: flex; + gap: 5px; + transition: transform 0.45s ease; +} + +.v2-gallery-item { + flex-shrink: 0; + width: 320px; + height: 220px; + border-radius: 10px; + overflow: hidden; + position: relative; +} + +.v2-gallery-item img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.v2-gallery-item:hover img { + transform: scale(1.06); +} + +/* Placeholder gallery items */ +.v2-gallery-item.v2-gallery-placeholder { + display: flex; + align-items: center; + justify-content: center; +} + +.v2-gallery-item-num { + font-family: var(--v2-font-display); + font-size: 4rem; + font-weight: 700; + color: rgba(201, 151, 58, 0.3); +} + +.v2-gallery-cta { + max-width: 1600px; + margin: 36px auto 0; + padding: 0 32px; +} + +/* ── PROCESS SECTION ───────────────────────────────────────── */ +#v2-process { + background: var(--v2-white); + padding: 90px 0; +} + +.v2-process-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + text-align: center; +} + +.v2-process-inner .v2-eyebrow { + display: block; + margin-bottom: 12px; +} + +.v2-process-inner .v2-section-title { + margin: 0 0 60px; +} + +.v2-process-steps { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 0; + position: relative; +} + +.v2-process-steps::before { + content: ''; + position: absolute; + top: 36px; + left: calc(10% + 18px); + right: calc(10% + 18px); + height: 2px; + background: linear-gradient(to right, var(--v2-gold), var(--v2-gold-light), var(--v2-gold)); + z-index: 0; +} + +.v2-step { + display: flex; + flex-direction: column; + align-items: center; + gap: 14px; + position: relative; + z-index: 1; + padding: 0 8px; +} + +.v2-step-num { + width: 72px; + height: 72px; + border-radius: 50%; + /* background: var(--v2-white); */ + /* border: 2.5px solid var(--v2-gold); */ + display: flex; + align-items: center; + justify-content: center; + font-family: var(--v2-font-display); + font-size: 1.6rem; + font-weight: 700; + color: var(--v2-gold); + /* box-shadow: 0 4px 20px rgba(201, 151, 58, 0.2); */ + transition: all 0.3s ease; +} + +.v2-step:hover .v2-step-num { + background: var(--v2-white); + color: var(--v2-gold); + transform: scale(1.1); +} + +.v2-step-icon { + font-size: 1.4rem; + margin-top: -4px; +} + +.v2-step-label { + font-family: var(--v2-font-body); + font-size: 0.72rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.12em; + color: var(--v2-gold); +} + +.v2-step-title { + font-family: var(--v2-font-display); + font-size: 1.25rem; + font-weight: 700; + color: var(--v2-text); + margin: 0; + line-height: 1.2; +} + +.v2-step-desc { + font-size: 0.78rem; + color: var(--v2-muted); + line-height: 1.6; + margin: 0; +} + +@media (max-width: 767px) { + .v2-process-steps { + grid-template-columns: 1fr 1fr; + gap: 28px; + } + + .v2-process-steps::before { + display: none; + } +} + +/* ── TESTIMONIALS ──────────────────────────────────────────── */ +#v2-testimonials { + background: var(--v2-cream); + padding: 100px 0; +} + +.v2-testimonials-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; +} + +.v2-testimonials-inner .v2-eyebrow { + display: block; + margin-bottom: 12px; +} + +/* .v2-testimonials-inner .v2-section-title { + margin: 0 0 48px; +} */ + +.v2-testimonials-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 24px; +} + +.v2-testimonial-card { + background: var(--v2-white); + border: 1px solid rgba(201, 151, 58, 0.2); + border-radius: var(--v2-radius); + padding: 32px; + box-shadow: var(--v2-shadow); + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.v2-testimonial-card:hover { + transform: translateY(-6px); + box-shadow: var(--v2-shadow-lg); +} + +.v2-stars { + display: flex; + gap: 3px; + margin-bottom: 16px; +} + +.v2-star { + color: var(--v2-gold); + font-size: 1rem; +} + +.v2-quote-mark { + font-family: var(--v2-font-display); + font-size: 5rem; + line-height: 0.5; + color: rgba(201, 151, 58, 0.15); + font-style: italic; + display: block; + margin-bottom: 8px; +} + +.v2-testimonial-text { + font-size: 0.9rem; + color: var(--v2-muted); + line-height: 1.75; + margin-bottom: 20px; + font-style: italic; +} + +.v2-testimonial-author { + font-family: var(--v2-font-body); + font-size: 0.82rem; + font-weight: 700; + color: var(--v2-text); +} + +.v2-testimonial-author span { + color: var(--v2-gold); +} + +@media (max-width: 767px) { + .v2-testimonials-grid { + grid-template-columns: 1fr; + } +} + +/* ── STATS STRIP ───────────────────────────────────────────── */ +#v2-stats { + background: linear-gradient(135deg, #ad7b22 0%, #d4a14a 100%); + padding: 60px 0 40px; + position: relative; + overflow: hidden; +} + +#v2-stats::before { + content: ''; + position: absolute; + inset: 0; + opacity: 0.28; + background: radial-gradient(circle at 10% 20%, rgba(255,255,255,0.35), transparent 25%), + radial-gradient(circle at 90% 30%, rgba(255,255,255,0.2), transparent 20%); +} + +.v2-stats-grid { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 0; + position: relative; + z-index: 1; +} + +.v2-stat-item { + display: flex; + flex-direction: column; + align-items: center; + /* text-align: center; */ + padding: 26px 24px; +} + +.v2-stat-item:not(:last-child) { + border-right: 1px solid rgba(255, 255, 255, 0.18); +} + +.v2-stat-icon-wrap { + width: 48px; + height: 48px; + display: inline-flex; + align-items: center; + justify-content: center; + margin-bottom: 14px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.16); + color: #fff; +} + +.v2-stat-icon-wrap svg { + width: 22px; + height: 22px; + stroke: currentColor; +} + +.v2-stat-number { + font-family: var(--v2-font-display); + font-size: 2.6rem; + font-weight: 700; + color: #fff; + line-height: 1; + margin-bottom: 8px; +} + +.v2-stat-label { + font-size: 0.72rem; + font-weight: 600; + letter-spacing: 0.14em; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.92); +} + +.v2-stat-item { + display: flex; + flex-direction: column; + align-items: center; + /* text-align: center; */ + padding: 20px; + border-right: 1px solid rgba(201, 151, 58, 0.2); +} + +.v2-stat-item:last-child { + border-right: none; +} + +.v2-stat-icon { + font-size: 1.8rem; + margin-bottom: 10px; +} + +.v2-stat-number { + font-family: var(--v2-font-display); + font-size: 2.8rem; + font-weight: 700; + color: var(--v2-gold); + line-height: 1; + margin-bottom: 8px; +} + +.v2-stat-label { + font-size: 0.72rem; + font-weight: 600; + letter-spacing: 0.14em; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.5); +} + +@media (max-width: 767px) { + .v2-stats-grid { + grid-template-columns: repeat(2, 1fr); + gap: 1px; + background: rgba(201, 151, 58, 0.15); + } + + .v2-stat-item { + background: transparent; + border-right: none; + border-bottom: 1px solid rgba(201, 151, 58, 0.15); + } +} + +/* ── CTA + CONTACT FORM ────────────────────────────────────── */ +#v2-cta { + background-color: var(--v2-cream2); + padding: 100px 0; +} + +.v2-cta-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 80px; + align-items: start; +} + +.v2-cta-left .v2-eyebrow { + display: block; + margin-bottom: 14px; +} + +.v2-cta-left .v2-section-title { + margin: 0 0 16px; +} + +.v2-cta-left p { + font-size: 0.9rem; + color: var(--v2-muted); + line-height: 1.8; + margin: 0 0 28px; +} + +.v2-cta-image { + border-radius: 14px; + overflow: hidden; + box-shadow: var(--v2-shadow-lg); + aspect-ratio: 4/3; +} + +.v2-cta-image img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.v2-contact-form { + background: var(--v2-white); + border: 1px solid rgba(201, 151, 58, 0.2); + border-radius: 16px; + padding: 40px; + box-shadow: var(--v2-shadow); +} + +.v2-form-title { + font-family: var(--v2-font-display); + font-size: 1.8rem; + font-weight: 700; + color: var(--v2-text); + margin: 0 0 28px; +} + +.v2-form-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; + margin-bottom: 16px; +} + +.v2-form-group { + display: flex; + flex-direction: column; + gap: 6px; + margin-bottom: 16px; +} + +.v2-form-group label { + font-size: 0.78rem; + font-weight: 600; + color: var(--v2-text); + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.v2-form-group input, +.v2-form-group select, +.v2-form-group textarea { + width: 100%; + padding: 12px 16px; + border: 1.5px solid rgba(201, 151, 58, 0.25); + border-radius: 8px; + font-family: var(--v2-font-body); + font-size: 0.88rem; + color: var(--v2-text); + background: var(--v2-cream); + transition: border-color 0.2s ease, box-shadow 0.2s ease; + outline: none; +} + +.v2-form-group input:focus, +.v2-form-group select:focus, +.v2-form-group textarea:focus { + border-color: var(--v2-gold); + box-shadow: 0 0 0 3px rgba(201, 151, 58, 0.12); +} + +.v2-form-group textarea { + resize: vertical; + min-height: 100px; +} + +.v2-form-submit { + width: 100%; + background-color: var(--v2-gold); + color: var(--v2-white); + font-family: var(--v2-font-body); + font-size: 0.85rem; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + padding: 15px 24px; + border: none; + border-radius: 6px; + cursor: pointer; + transition: background-color 0.25s ease, transform 0.2s ease; + margin-top: 8px; +} + +.v2-form-submit:hover { + background-color: var(--v2-gold-dark); + transform: translateY(-2px); +} + +@media (max-width: 991px) { + .v2-cta-inner { + grid-template-columns: 1fr; + gap: 40px; + } +} + +@media (max-width: 576px) { + .v2-form-row { + grid-template-columns: 1fr; + } +} + +/* ── FOOTER ────────────────────────────────────────────────── */ +#v2-footer { + background: var(--v2-dark); + color: rgba(255, 255, 255, 0.65); + padding: 80px 0 0; +} + +.v2-footer-grid { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + display: grid; + grid-template-columns: 2fr 1fr 1fr 1fr; + gap: 60px; + padding-bottom: 60px; + border-bottom: 1px solid rgba(201, 151, 58, 0.15); +} + +.v2-footer-logo img { + height: 50px; + width: auto; + object-fit: contain; + margin-bottom: 16px; + filter: brightness(0) invert(1); + opacity: 0.85; +} + +.v2-footer-tagline { + font-size: 0.85rem; + color: rgba(255, 255, 255, 0.45); + line-height: 1.7; + max-width: 280px; + margin: 0 0 24px; +} + +.v2-footer-social { + display: flex; + gap: 10px; +} + +.v2-footer-social a { + width: 36px; + height: 36px; + border-radius: 50%; + border: 1px solid rgba(201, 151, 58, 0.3); + display: flex; + align-items: center; + justify-content: center; + color: rgba(255, 255, 255, 0.5) !important; + text-decoration: none !important; + font-size: 0.85rem; + transition: all 0.25s; +} + +.v2-footer-social a:hover { + background: var(--v2-gold); + border-color: var(--v2-gold); + color: var(--v2-white) !important; +} + +.v2-footer-col h4 { + font-family: var(--v2-font-body); + font-size: 0.72rem; + font-weight: 700; + letter-spacing: 0.2em; + text-transform: uppercase; + color: var(--v2-gold); + margin: 0 0 20px; +} + +.v2-footer-links { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 12px; +} + +.v2-footer-links li a { + font-size: 0.85rem; + color: rgba(255, 255, 255, 0.5) !important; + text-decoration: none !important; + transition: color 0.2s; +} + +.v2-footer-links li a:hover { + color: var(--v2-gold) !important; +} + +.v2-footer-contact-item { + display: flex; + align-items: flex-start; + gap: 10px; + margin-bottom: 14px; + font-size: 0.85rem; + color: rgba(255, 255, 255, 0.5); +} + +.v2-footer-contact-item svg { + width: 16px; + height: 16px; + stroke: var(--v2-gold); + fill: none; + flex-shrink: 0; + margin-top: 2px; +} + +.v2-footer-contact-item a { + color: rgba(255, 255, 255, 0.5) !important; + text-decoration: none !important; + transition: color 0.2s; +} + +.v2-footer-contact-item a:hover { + color: var(--v2-gold) !important; +} + +.v2-footer-bottom { + max-width: 1600px; + margin: 0 auto; + padding: 24px 32px; + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: 12px; +} + +.v2-footer-bottom p { + font-size: 0.78rem; + color: rgba(255, 255, 255, 0.3); + margin: 0; +} + +.v2-footer-bottom-links { + display: flex; + gap: 20px; +} + +.v2-footer-bottom-links a { + font-size: 0.78rem; + color: rgba(255, 255, 255, 0.3) !important; + text-decoration: none !important; + transition: color 0.2s; +} + +.v2-footer-bottom-links a:hover { + color: var(--v2-gold) !important; +} + +@media (max-width: 991px) { + .v2-footer-grid { + grid-template-columns: 1fr 1fr; + gap: 40px; + } +} + +@media (max-width: 575px) { + .v2-footer-grid { + grid-template-columns: 1fr; + gap: 32px; + } +} + +/* ── Utilities ─────────────────────────────────────────────── */ +.v2-divider { + height: 2px; + background: linear-gradient(to right, transparent, var(--v2-gold), transparent); + border: none; + margin: 0; +} + +.v2-gold-dot { + display: inline-block; + width: 6px; + height: 6px; + border-radius: 50%; + background: var(--v2-gold); + margin: 0 8px; + vertical-align: middle; +} + +/* Scroll reveal animation */ +.v2-reveal { + opacity: 0; + transform: translateY(28px); + transition: opacity 0.65s ease, transform 0.65s ease; +} + +.v2-reveal.visible { + opacity: 1; + transform: translateY(0); +} + +.v2-reveal-delay-1 { + transition-delay: 0.1s; +} + +.v2-reveal-delay-2 { + transition-delay: 0.2s; +} + +.v2-reveal-delay-3 { + transition-delay: 0.3s; +} + +.v2-reveal-delay-4 { + transition-delay: 0.4s; +} + +.v2-gold-text { + color: var(--v2-gold); + font-family: var(--v2-font-display); +} + +.v2-dark-text { + color: var(--v2-text); +} + +.v2-btn-play { + display: inline-flex; + align-items: center; + gap: 12px; + background-color: var(--v2-white); + color: var(--v2-text) !important; + font-family: var(--v2-font-body); + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + padding: 12px 20px 12px 26px; + border-radius: 4px; + border: 1px solid #1a1206; + cursor: pointer; + text-decoration: none !important; + transition: all 0.25s ease; +} + +.v2-btn-play .v2-play-icon { + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + border-radius: 50%; + border: 1px solid var(--v2-gold); + color: var(--v2-gold); +} + +.v2-btn-play .v2-play-icon svg { + width: 12px; + height: 12px; + fill: currentColor; +} + +.v2-floating-sidebar { + position: fixed; + right: 20px; + top: 50%; + transform: translateY(-50%); + background: var(--v2-white); + border-radius: 30px; + padding: 15px 10px; + display: flex; + flex-direction: column; + gap: 15px; + z-index: 1000; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); + margin-right: 20px; +} + +.v2-floating-sidebar a { + color: var(--v2-gold); + display: flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + border-radius: 50%; + border: 1px solid rgba(201, 151, 58, 0.2); + transition: all 0.3s; +} + +.v2-floating-sidebar a:hover { + background: var(--v2-gold); + color: var(--v2-white); +} + +@media (max-width:425px){ + + .v2-floating-sidebar{ + padding:10px; + right:10px; + margin-right:0; + } + + .v2-floating-sidebar a{ + width:30px; + height:30px; + } + +} + +/* Feature Card Border Overlay */ +#wrap, +main, +.oe_structure{ + background:#fff !important; +} +#v2-features { + background: transparent; + position: relative; + z-index: 10; + margin-top: -90px; +} + +.v2-features-card { + border: 1px solid var(--v2-gold); + border-radius: 30px; + background: var(--v2-white); + box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08); + position: relative; + max-width: 1600px; + margin: 0 auto; +} + +.v2-features-card::before, +.v2-features-card::after { + content: ''; + position: absolute; + width: 30px; + height: 30px; + border: 2px solid var(--v2-gold); + border-radius: 4px; +} + +.v2-features-card::before { + top: -8px; + left: -8px; + border-right: none; + border-bottom: none; +} + +.v2-features-card::after { + bottom: -8px; + right: -8px; + border-left: none; + border-top: none; +} + +/* ============================================================ + SERVICES & GALLERY UPDATES (ITERATION 3) + ============================================================ */ + +.v2-section-header-group { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 20px; +} + +.v2-eyebrow-num { + color: var(--v2-gold); + font-family: var(--v2-font-body); + font-weight: 700; + font-size: 0.9rem; +} + +.v2-eyebrow-text { + color: var(--v2-text); + font-family: var(--v2-font-body); + font-weight: 700; + font-size: 0.8rem; + letter-spacing: 0.1em; +} + +.v2-eyebrow-line { + flex: 1; + height: 1px; + background: var(--v2-gold); + max-width: 40px; + position: relative; +} + +.v2-eyebrow-line::after { + content: ''; + position: absolute; + right: 0; + top: -2px; + width: 5px; + height: 5px; + border-radius: 50%; + background: var(--v2-gold); +} + +.v2-services-grid-new { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 15px; +} + +.v2-service-card-new { + display: flex; + flex-direction: column; + background: #ffffff; + border: 1px solid rgba(201, 151, 58, 0.25); + border-radius: 12px; + padding: 12px; + text-decoration: none !important; + transition: all 0.3s ease; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03); +} + +.v2-service-card-new:hover { + transform: translateY(-4px); + box-shadow: 0 8px 25px rgba(201, 151, 58, 0.15); +} + +.v2-service-title-top { + font-family: var(--v2-font-body); + font-weight: 800; + font-size: 0.7rem; + color: var(--v2-text); + text-align: center; + margin-bottom: 12px; + letter-spacing: 0.05em; +} + +.v2-service-img-wrapper { + width: 100%; + aspect-ratio: 4/3; + border-radius: 8px; + overflow: hidden; +} + +.v2-service-img-wrapper img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.v2-service-card-new:hover img { + transform: scale(1.05); +} + +/* Gallery Section Update */ +#v2-gallery { + padding: 80px 0; +} + +.v2-gallery-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; + display: grid; + grid-template-columns: 350px 1fr; + gap: 40px; + align-items: center; +} + +.v2-gallery-right { + position: relative; + width: 100%; + overflow: visible; +} + +.v2-gallery-track { + display: flex; + gap: 5px; +} + +.v2-gallery-item-slant { + width: 35%; + height: 400px; + overflow: hidden; + clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); + position: relative; + transition: transform 0.4s ease; + flex-shrink: 0; + margin-right: -100px; +} + +.v2-gallery-item-slant img { + width: 150%; + height: 100%; + object-fit: cover; + margin-left: -25%; + transition: transform 0.5s ease; + display: block; +} + +.v2-gallery-item-slant:hover img { + transform: scale(1.08); +} + +.v2-gallery-btn-next { + position: absolute; + right: 20px; + top: 50%; + transform: translateY(-50%); + width: 56px; + height: 56px; + border-radius: 50%; + background: var(--v2-gold); + border: 4px solid rgba(255, 255, 255, 0.4); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + z-index: 10; + box-shadow: 0 4px 15px rgba(0,0,0,0.15); + transition: background 0.3s; +} + +.v2-gallery-btn-next:hover { + background: var(--v2-gold-dark); +} + +@media (max-width: 1024px) { + .v2-services-grid-new { + grid-template-columns: repeat(2, 1fr); + } + + .v2-gallery-inner { + grid-template-columns: 1fr; + } +} + +/* ── PROCESS SECTION UPDATE ──────────────────────────────────────── */ +#v2-process { + padding: 80px 0; + background: var(--v2-white); + text-align: center; +} + +.v2-process-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 32px; +} + +.v2-process-timeline { + display: flex; + justify-content: space-between; + position: relative; + margin-top: 60px; +} + +.v2-process-line { + position: absolute; + top: 40px; + left: 10%; + right: 10%; + height: 2px; + background: transparent; + border-top: 2px dashed rgba(201, 151, 58, 0.4); + z-index: 1; +} + +.v2-step { + position: relative; + z-index: 2; + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + padding: 0 10px; +} + +.v2-step-icon-circle { + width: 80px; + height: 80px; + border-radius: 50%; + background: var(--v2-gold); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + /* margin-bottom: 20px; */ + box-shadow: 0 4px 15px rgba(201, 151, 58, 0.3); +} + +.v2-step-num { + font-family: var(--v2-font-body); + font-weight: 700; + color: var(--v2-gold); + /* margin-bottom: 10px; */ +} + +.v2-step-title { + font-family: var(--v2-font-body); + font-weight: 800; + font-size: 0.9rem; + letter-spacing: 0.1em; + color: var(--v2-text); + /* margin-bottom: 10px; */ +} + +.v2-step-desc { + font-size: 0.8rem; + color: var(--v2-muted); + line-height: 1.6; +} + +@media (max-width: 767px){ + + .v2-process-timeline{ + flex-direction: column; + } + + .v2-process-line{ + display: none; + } + + .v2-step{ + gap: 0; + margin-bottom: 25px; + } + + .v2-step:hover .v2-step-num{ + background: none; + } + +} + +/* ── TESTIMONIALS UPDATE ──────────────────────────────────────────── */ +#v2-testimonials { + padding: 80px 0; + background-color: #fdf6e3; +} + +.v2-testimonials-inner { + max-width: 1600px; + margin: 0 auto; + padding: 0 40px; + display: grid; + grid-template-columns: 400px 1fr; + gap: 60px; + align-items: center; +} + +.v2-testimonials-left { + display: flex; + flex-direction: column; + justify-content: center; +} + +.v2-testimonials-right { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 18px; +} + +.v2-testimonial-card-new { + background: #fff; + border-radius: 20px; + padding: 50px 40px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); + display: flex; + flex-direction: column; +} + +.v2-testimonial-top-row { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: 14px; +} + +/* keep old header class working too */ +.v2-testimonial-card-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: 14px; +} + +.v2-quote-mark-new { + font-size: 3.5rem; + color: var(--v2-gold); + line-height: 0.8; + font-family: var(--v2-font-display); + opacity: 0.7; +} + +.v2-stars { + display: flex; + gap: 2px; +} + +.v2-star { + color: var(--v2-gold); + font-size: 0.72rem; +} + +.v2-testimonial-text-new { + font-size: 0.82rem; + color: var(--v2-muted); + line-height: 1.75; + margin-bottom: 16px; + flex: 1; +} + +.v2-testimonial-author-new { + font-size: 0.78rem; + font-weight: 600; + color: var(--v2-text); + font-style: italic; +} + +@media (max-width: 1100px){ + + .v2-testimonials-inner{ + grid-template-columns: 1fr; + gap: 40px; + padding: 0 20px; + } + + .v2-testimonials-left{ + order: 1; + } + + .v2-testimonials-right{ + order: 2; + } + +} + +@media (max-width: 767px){ + + .v2-testimonial-card-new{ + padding: 20px; + } + +} + +@media (max-width: 425px){ + + .v2-testimonials-right{ + grid-template-columns: 1fr; + } + +} + +/* -- STATS STRIP UPDATE ---------------------------------------- */ + +#v2-stats{ + background:#8b6914; + padding:18px 0; +} + +.v2-stats-grid{ + max-width:1600px; + margin:0 auto; + padding:0; + display:flex; + align-items:center; + justify-content:space-between; +} + +.v2-stat-item{ + flex:1; + display:grid; + grid-template-columns:42px auto; + grid-template-rows:auto auto; + align-items:center; + justify-content:center; + gap:2px 12px; + color:#fff; +} + +/* Icon */ +.v2-stat-icon-wrap{ + width:42px; + height:42px; + min-width:42px; + border-radius:50%; + border:1.5px solid rgba(255,255,255,.5); + display:flex; + align-items:center; + justify-content:center; + color:#fff; + + grid-row:1 / span 2; + grid-column:1; +} + +/* Number */ +.v2-stat-number{ + grid-column:2; + margin:0; + font-size:1.5rem; + font-weight:700; + color:#fff; + line-height:1; +} + +/* Label */ +.v2-stat-label{ + grid-column:2; + margin:0; + font-size:.55rem; + font-weight:600; + letter-spacing:.08em; + color:rgba(255,255,255,.85); + text-transform:uppercase; + line-height:1.3; +} + +/* Divider */ +.v2-stat-dot{ + color:rgba(255,255,255,.35); + font-size:1.4rem; + flex-shrink:0; + display:none; +} + +/* Tablet */ +@media (max-width:768px){ + + #v2-stats{ + padding:0; + } + + .v2-stats-grid{ + flex-wrap:wrap; + flex-direction:row; + gap:20px; + justify-content:flex-start; + } + + .v2-stat-item{ + flex:0 0 calc(50% - 10px); + width:calc(50% - 10px); + + justify-content:start; + justify-items:start; + text-align:left; + } + + .v2-stat-dot{ + display:none; + } + +} + +/* Mobile */ +@media (max-width:425px){ + + .v2-stat-item{ + flex:0 0 100%; + width:100%; + } + +} + + + +/* ── CTA NEW ──────────────────────────────────────── */ +/* ── CTA SECTION NEW DESIGN ───────────────────────── */ + +#v2-cta-new{ + background:#fff; + padding:40px 0 80px; + overflow:hidden; +} + +.v2-cta-new-inner{ + max-width:1600px; + margin:auto; + padding:0 40px; + display:grid; + grid-template-columns:465px 1fr; + gap:0; + align-items:center; +} + +/* LEFT TITLE */ + +.v2-cta-col-text{ + padding-right:35px; +} + +.v2-cta-col-text .v2-section-title{ + font-size:3rem; + line-height:1.05; + margin:10px 0; +} + +.v2-cta-col-text p{ + max-width:220px; + font-size:.9rem; + line-height:1.8; + color:#666; + margin-top:15px; +} + +/* CENTER FORM */ + +.v2-cta-col-form{ + position:relative; + z-index:2; +} + +.v2-cta-col-form form{ + /* background:#fff; */ + /* padding:32px; */ + /* border-radius:0 0 90px 0; */ + /* border:1px solid rgba(0,0,0,.08); */ + box-shadow:none; + /* width: 80%; */ +} + +.v2-form-row{ + display:grid; + grid-template-columns:1fr 1fr; + gap:15px; + margin-bottom:15px; +} + +.v2-form-group-new{ + margin-bottom:0; +} + +.v2-form-group-new input, +.v2-form-group-new select, +.v2-form-group-new textarea{ + width:100%; + height:48px; + border:1px solid #ece7df; + border-radius:8px; + padding:0 14px; + font-size:.85rem; + background:#fff; +} + +.v2-form-group-new textarea{ + min-height:90px; + padding-top:15px; +} + +.v2-btn-submit-new{ + width:auto; + min-width:180px; + padding:14px 14px; + border-radius:8px; + margin-top:15px; +} + +/* RIGHT SIDE WRAPPER */ + +.v2-cta-col-image-info{ + display:flex; + align-items:stretch; + margin-left:-70px; +} + +/* IMAGE CURVE */ + +.v2-cta-image-curve{ + width:230px; + height:460px; + overflow:hidden; + border-radius:180px 0 0 180px; + position:relative; + z-index:1; + /* margin-right:-40px; */ +} + +.v2-cta-image-curve img{ + width:100%; + height:100%; + object-fit:cover; +} + +/* CONTACT PANEL */ + +.v2-cta-contact-info{ + flex:1; + background:#fff; + border-radius:0; + padding:45px 30px; + color:#666; + box-shadow:none; + border-left:none; +} + +.v2-contact-line{ + display:flex; + align-items:flex-start; + gap:14px; + margin-bottom:24px; + color:#666; + font-size:.9rem; +} + +.v2-contact-line svg{ + color:#c59a3f; +} + +.v2-contact-social{ + margin-top:30px; +} + +.v2-contact-social .v2-eyebrow{ + color:#c59a3f; + font-weight:700; +} + +.v2-social-icons{ + display:flex; + gap:10px; + margin-top:14px; +} + +.v2-social-icons a{ + width:38px; + height:38px; + border-radius:50%; + border:1px solid #d9c59c; + color:#c59a3f; + background:#fff; +} + +.v2-social-icons a:hover{ + transform:translateY(-3px); +} + +/* MOBILE */ + +@media(max-width:991px){ + +.v2-cta-new-inner{ + grid-template-columns:1fr; + gap:30px; + padding: 0 30px; +} + +.v2-cta-col-image-info{ + margin-left:0; + flex-direction:column; +} + +.v2-cta-image-curve{ + width:100%; + height:300px; + margin-right:0; + border-radius:50px; +} + +} + +/* ── FOOTER NEW ──────────────────────────────────────── */ +/* FOOTER */ + +#v2-footer-new{ +background:linear-gradient(to right, #F9F9F7 30%, #fff2d3 80%); +padding:70px 0 0; +/* margin-top:60px; */ +border-top:1px solid rgba(0,0,0,.06); +} + +.v2-footer-new-inner{ +max-width:1600px; +margin:auto; +padding:0 30px 30px; +display:grid; +grid-template-columns:1.4fr 1fr 1fr 1.2fr; +gap:60px; +} + +.v2-footer-col h4{ +font-size:1rem; +margin-bottom:22px; +color:#b8862c; +font-weight:700; +} + +.v2-footer-logo-new img{ +height:55px; +margin-bottom:18px; +} + +.v2-footer-about{ +font-size:.92rem; +line-height:1.8; +color:#666; +max-width:300px; +} + +.v2-footer-col ul{ +margin:0; +padding:0; +list-style:none; +} + +.v2-footer-col ul li{ +margin-bottom:14px; +} + +.v2-footer-col ul li a, +.v2-footer-col ul li{ +text-decoration:none; +color:#666; +font-size:.9rem; +transition:.3s; +} + +.v2-footer-col ul li a:hover{ +color:#b8862c; +padding-left:6px; +} + +.v2-footer-contact p{ +display:flex; +align-items:flex-start; +gap:12px; +margin-bottom:15px; +color:#666; +line-height:1.8; +} + +.v2-footer-contact svg{ +min-width:18px; +margin-top:4px; +color:#C9973A; +} + +.v2-footer-social{ +display:flex; +gap:12px; +margin-top:20px; +flex-wrap:wrap; +} + +.v2-footer-social a{ +width:42px; +height:42px; +border-radius:50%; +background:#C9973A; +display:flex; +align-items:center; +justify-content:center; +color:#fff; +transition:.3s; +} + +.v2-footer-social a svg{ +stroke:white; +fill:white; +color:white; +} + +.v2-footer-social a:hover{ +transform:translateY(-5px); +background:#b8862c; +} + +.v2-footer-bottom{ +display:flex; +justify-content:center; +align-items:center; +text-align:center; +padding:22px; +border-top:1px solid rgba(0,0,0,.08); +font-size:.85rem; +color:#666; +} +/* Responsive */ + +@media(max-width:991px){ + +.v2-footer-new-inner{ +grid-template-columns:1fr 1fr; +} + +} + +@media(max-width:768px){ + + #v2-footer-new{ + padding: 40px 0 0; + } + +.v2-footer-new-inner{ +grid-template-columns:1fr; +gap:10px; +text-align:left; +} + +.v2-footer-about{ +max-width:100%; +} + +/* .v2-footer-social{ +justify-content:center; +} */ + +} + +.v2-btn-outline-dark{ + /* margin-top:30px; */ + display:inline-flex; + align-items:center; + justify-content:center; + + font-size:0.75rem; + font-weight:700; + letter-spacing:0.05em; + + color:#C9973A !important; + text-decoration:none; + + padding:12px 20px; + border:1px solid #C9973A; + border-radius:6px; + + width:200px; + white-space:nowrap; + transition:all .3s ease; +} + +.v2-btn-outline-dark:hover{ + background:#C9973A; + color:#fff !important; + text-decoration:none; +} \ No newline at end of file diff --git a/addons/theme_aakriti_v2/static/src/img/about.webp b/addons/theme_aakriti_v2/static/src/img/about.webp new file mode 100644 index 0000000..f247b33 Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/about.webp differ diff --git a/addons/theme_aakriti_v2/static/src/img/birthday.png b/addons/theme_aakriti_v2/static/src/img/birthday.png new file mode 100644 index 0000000..ff37722 Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/birthday.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/corporate.png b/addons/theme_aakriti_v2/static/src/img/corporate.png new file mode 100644 index 0000000..1db89e9 Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/corporate.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/cta-img.png b/addons/theme_aakriti_v2/static/src/img/cta-img.png new file mode 100644 index 0000000..bc7200b Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/cta-img.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/cultural.png b/addons/theme_aakriti_v2/static/src/img/cultural.png new file mode 100644 index 0000000..c7bbc11 Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/cultural.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/decorative-line.png b/addons/theme_aakriti_v2/static/src/img/decorative-line.png new file mode 100644 index 0000000..3ca397f Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/decorative-line.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/gallery1.webp b/addons/theme_aakriti_v2/static/src/img/gallery1.webp new file mode 100644 index 0000000..51c61c1 Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/gallery1.webp differ diff --git a/addons/theme_aakriti_v2/static/src/img/hero-banner.png b/addons/theme_aakriti_v2/static/src/img/hero-banner.png new file mode 100644 index 0000000..221e63c Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/hero-banner.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/hero_bg.png b/addons/theme_aakriti_v2/static/src/img/hero_bg.png new file mode 100644 index 0000000..0acaf4f Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/hero_bg.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/logo.png b/addons/theme_aakriti_v2/static/src/img/logo.png new file mode 100644 index 0000000..9f4205f Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/logo.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/stage_decor.png b/addons/theme_aakriti_v2/static/src/img/stage_decor.png new file mode 100644 index 0000000..0f50f40 Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/stage_decor.png differ diff --git a/addons/theme_aakriti_v2/static/src/img/wedding.png b/addons/theme_aakriti_v2/static/src/img/wedding.png new file mode 100644 index 0000000..b680a68 Binary files /dev/null and b/addons/theme_aakriti_v2/static/src/img/wedding.png differ diff --git a/addons/theme_aakriti_v2/static/src/js/theme_v2.js b/addons/theme_aakriti_v2/static/src/js/theme_v2.js new file mode 100644 index 0000000..ea17fd6 --- /dev/null +++ b/addons/theme_aakriti_v2/static/src/js/theme_v2.js @@ -0,0 +1,189 @@ +/** @odoo-module **/ +/** + * Aakriti Events – Premium Theme V2 JS + * Handles: sticky header, mobile drawer, gallery carousel, scroll reveal, counter animation + */ + +(function () { + 'use strict'; + + /* ── Helpers ──────────────────────────────────────────── */ + function qs(sel, ctx) { return (ctx || document).querySelector(sel); } + function qsa(sel, ctx) { return (ctx || document).querySelectorAll(sel); } + function onReady(fn) { + if (document.readyState !== 'loading') { fn(); } + else { document.addEventListener('DOMContentLoaded', fn); } + } + + /* ── Sticky Header ────────────────────────────────────── */ + function initHeader() { + var header = qs('#v2-header'); + if (!header) return; + + function updateHeader() { + if (window.scrollY > 40) { + header.classList.add('scrolled'); + } else { + header.classList.remove('scrolled'); + } + } + + window.addEventListener('scroll', updateHeader, { passive: true }); + updateHeader(); + } + + /* ── Mobile Drawer ────────────────────────────────────── */ + function initMobileDrawer() { + var toggle = qs('#v2-mobile-toggle'); + var drawer = qs('#v2-mobile-drawer'); + var overlay = qs('#v2-drawer-overlay'); + var closeBtn = qs('#v2-drawer-close'); + if (!toggle || !drawer) return; + + function openDrawer() { + drawer.classList.add('open'); + if (overlay) { overlay.classList.add('active'); } + document.body.style.overflow = 'hidden'; + } + function closeDrawer() { + drawer.classList.remove('open'); + if (overlay) { overlay.classList.remove('active'); } + document.body.style.overflow = ''; + } + + toggle.addEventListener('click', openDrawer); + if (closeBtn) { closeBtn.addEventListener('click', closeDrawer); } + if (overlay) { overlay.addEventListener('click', closeDrawer); } + + qsa('#v2-mobile-drawer a').forEach(function (a) { + a.addEventListener('click', closeDrawer); + }); + window.addEventListener('resize', function () { + if (window.innerWidth > 991) { closeDrawer(); } + }); + } + + /* ── Gallery Carousel ─────────────────────────────────── */ + function initGallery() { + var track = qs('#v2-gallery-track'); + var prevBtn = qs('#v2-gallery-prev'); + var nextBtn = qs('#v2-gallery-next'); + if (!track) return; + + var current = 0; + var itemWidth = 334; // item width + gap + + function clamp(val, min, max) { return Math.max(min, Math.min(max, val)); } + + function getMax() { + var items = track.children.length; + var visible = Math.floor(track.parentElement.offsetWidth / itemWidth); + return Math.max(0, items - visible); + } + + function goTo(index) { + current = clamp(index, 0, getMax()); + track.style.transform = 'translateX(-' + (current * itemWidth) + 'px)'; + } + + if (prevBtn) { prevBtn.addEventListener('click', function () { goTo(current - 1); }); } + if (nextBtn) { nextBtn.addEventListener('click', function () { goTo(current + 1); }); } + + // Touch/swipe support + var startX = 0; + track.addEventListener('touchstart', function (e) { startX = e.touches[0].clientX; }, { passive: true }); + track.addEventListener('touchend', function (e) { + var diff = startX - e.changedTouches[0].clientX; + if (Math.abs(diff) > 50) { goTo(current + (diff > 0 ? 1 : -1)); } + }, { passive: true }); + } + + /* ── Scroll Reveal ────────────────────────────────────── */ + function initReveal() { + var els = qsa('.v2-reveal'); + if (!els.length) return; + + if ('IntersectionObserver' in window) { + var io = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (entry.isIntersecting) { + entry.target.classList.add('visible'); + io.unobserve(entry.target); + } + }); + }, { threshold: 0.12 }); + els.forEach(function (el) { io.observe(el); }); + } else { + els.forEach(function (el) { el.classList.add('visible'); }); + } + } + + /* ── Counter Animation ────────────────────────────────── */ + function animateCounter(el, target, suffix) { + var start = 0; + var duration = 1800; + var startTime = null; + + function step(ts) { + if (!startTime) startTime = ts; + var progress = Math.min((ts - startTime) / duration, 1); + var eased = 1 - Math.pow(1 - progress, 3); // ease out cubic + var val = Math.round(eased * target); + el.textContent = val + suffix; + if (progress < 1) { requestAnimationFrame(step); } + } + requestAnimationFrame(step); + } + + function initCounters() { + var counters = qsa('[data-v2-counter]'); + if (!counters.length) return; + + var observed = false; + + if ('IntersectionObserver' in window) { + var io = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (entry.isIntersecting && !observed) { + observed = true; + counters.forEach(function (el) { + var target = parseInt(el.getAttribute('data-v2-counter'), 10); + var suffix = el.getAttribute('data-v2-suffix') || ''; + animateCounter(el, target, suffix); + }); + io.disconnect(); + } + }); + }, { threshold: 0.3 }); + + var statsSection = qs('#v2-stats'); + if (statsSection) { io.observe(statsSection); } + } else { + counters.forEach(function (el) { + el.textContent = el.getAttribute('data-v2-counter') + (el.getAttribute('data-v2-suffix') || ''); + }); + } + } + + /* ── Active nav link ──────────────────────────────────── */ + function initActiveNav() { + var path = window.location.pathname; + qsa('.v2-nav a, .v2-drawer-nav a').forEach(function (a) { + var href = a.getAttribute('href') || ''; + if (href === path || (href !== '/' && path.startsWith(href))) { + a.classList.add('active'); + } + }); + } + + /* ── Bootstrap ────────────────────────────────────────── */ + onReady(function () { + initHeader(); + initMobileDrawer(); + initGallery(); + initReveal(); + initCounters(); + initActiveNav(); + }); + +})(); diff --git a/addons/theme_aakriti_v2/views/website_v2_templates.xml b/addons/theme_aakriti_v2/views/website_v2_templates.xml new file mode 100644 index 0000000..3dd5f08 --- /dev/null +++ b/addons/theme_aakriti_v2/views/website_v2_templates.xml @@ -0,0 +1,843 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +