TTK_E32222585_laravel/public/assets/css/styles.css

449 lines
12 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
/* Variables */
:root {
--blush-pink: #d8c8b8;
--rosewood: #8e4444;
/* --rosewood: #80664d; */
--champagne-gold: #F3E5AB;
--transparent-lilac: rgba(229, 204, 255, 0.4);
--deep-plum: #5D4157;
--midnight-rose: #8c0f0d;
}
/* Reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Base Styles */
body {
font-family: 'Poppins', sans-serif;
background-color: #FFFFFF;
color: #333333;
overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Playfair Display', serif;
font-weight: 600;
}
/* Layout */
.section {
padding: 4rem 0;
}
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 1.5rem;
}
/* Tailwind Utilities */
.mx-auto { margin-left: auto; margin-right: auto; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-12 { margin-top: 3rem; }
.mt-16 { margin-top: 4rem; }
.mr-4 { margin-right: 1rem; }
.mr-2 { margin-right: 0.5rem; }
.ml-1 { margin-left: 0.25rem; }
.ml-4 { margin-left: 1rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.pt-6 { padding-top: 1.5rem; }
.pt-8 { padding-top: 2rem; }
.w-full { width: 100%; }
.h-1 { height: 0.25rem; }
.h-64 { height: 16rem; }
.h-16 { height: 4rem; }
.h-20 { height: 5rem; }
.h-24 { height: 6rem; }
.h-32 { height: 8rem; }
.h-40 { height: 10rem; }
.w-16 { width: 4rem; }
.w-24 { width: 6rem; }
.w-32 { width: 8rem; }
.w-40 { width: 10rem; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.flex { display: flex; }
.grid { display: grid; }
.hidden { display: none; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.space-x-4 > * + * { margin-left: 1rem; }
.space-x-8 > * + * { margin-left: 2rem; }
.space-y-2 > * + * { margin-top: 0.5rem; }
.space-y-3 > * + * { margin-top: 0.75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-full { border-radius: 9999px; }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
.overflow-hidden { overflow: hidden; }
.relative { position: relative; }
.absolute { position: absolute; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.z-10 { z-index: 10; }
.z-999 { z-index: 999; }
.-top-10 { top: -2.5rem; }
.-left-10 { left: -2.5rem; }
.-bottom-10 { bottom: -2.5rem; }
.-right-10 { right: -2.5rem; }
.-top-6 { top: -1.5rem; }
.-left-6 { left: -1.5rem; }
.-bottom-6 { bottom: -1.5rem; }
.-right-6 { right: -1.5rem; }
.bottom-0 { bottom: 0; }
.left-0 { left: 0; }
.right-30 { right: 7.5rem; }
.bottom-30 { bottom: 7.5rem; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.text-sm { font-size: 0.875rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.text-4xl { font-size: 2.25rem; }
.text-5xl { font-size: 3rem; }
.text-6xl { font-size: 3.75rem; }
.font-playfair { font-family: 'Playfair Display', serif; }
.text-deep-plum { color: var(--deep-plum); }
.text-rosewood { color: var(--rosewood); }
.text-white { color: white; }
.text-gray-300 { color: #D1D5DB; }
.text-gray-400 { color: #9CA3AF; }
.text-gray-600 { color: #4B5563; }
.text-gray-700 { color: #374151; }
.bg-white { background-color: white; }
.bg-deep-plum { background-color: var(--deep-plum); }
.bg-blush-pink { background-color: var(--blush-pink); }
.bg-champagne-gold { background-color: var(--champagne-gold); }
.bg-transparent-lilac { background-color: var(--transparent-lilac); }
.bg-rosewood { background-color: var(--rosewood); }
.bg-gradient-to-b { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); }
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }
.from-transparent-lilac { --tw-gradient-from: var(--transparent-lilac); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(229, 204, 255, 0)); }
.from-white { --tw-gradient-from: white; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0)); }
.to-white { --tw-gradient-to: white; }
.to-transparent { --tw-gradient-to: transparent; }
.border-t { border-top-width: 1px; }
.border-gray-200 { border-color: #E5E7EB; }
.border-gray-700 { border-color: #374151; }
.cursor-pointer { cursor: pointer; }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-shadow { transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.duration-300 { transition-duration: 300ms; }
.hover\:shadow-xl:hover { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
.hover\:text-white:hover { color: white; }
.hover\:text-rosewood:hover { color: var(--rosewood); }
.hover\:text-midnight-rose:hover { color: var(--midnight-rose); }
.hover\:text-champagne-gold:hover { color: var(--champagne-gold); }
.hover\:bg-midnight-rose:hover { background-color: var(--midnight-rose); }
.hover\:bg-rosewood:hover { background-color: var(--rosewood); }
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:ring-2:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus\:ring-rosewood:focus { --tw-ring-color: var(--rosewood); }
.min-h-screen { min-height: 100vh; }
/* Grid System */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.gap-8 { gap: 2rem; }
.gap-12 { gap: 3rem; }
/* Custom animations */
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-20px); }
100% { transform: translateY(0px); }
}
@keyframes floatSide {
0% { transform: translateX(0px); }
50% { transform: translateX(15px); }
100% { transform: translateX(0px); }
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.floating {
animation: float 6s ease-in-out infinite;
}
.floating-side {
animation: floatSide 8s ease-in-out infinite;
}
.fade-in {
animation: fadeIn 1.5s ease-in-out;
}
/* Button styles */
.btn {
padding: 0.75rem 1.5rem;
border-radius: 30px;
font-weight: 500;
transition: all 0.3s ease;
cursor: pointer;
display: inline-block;
text-decoration: none;
}
.btn-primary {
background-color: var(--rosewood);
color: white;
border: 2px solid var(--rosewood);
}
.btn-primary:hover {
background-color: var(--midnight-rose);
border-color: var(--midnight-rose);
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
.btn-outline-primary {
background-color: transparent;
color: var(--rosewood);
border: 2px solid var(--rosewood);
transition: all 0.3s ease;
}
.btn-outline-primary:hover {
background-color: var(--rosewood);
color: white;
border-color: var(--rosewood);
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
.btn-secondary {
background-color: transparent;
color: var(--rosewood);
border: 2px solid var(--rosewood);
}
.btn-secondary:hover {
background-color: var(--rosewood);
color: white;
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
/* Navbar styles */
.navbar {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 1000;
transition: all 0.3s ease;
background-color: transparent;
}
.navbar.scrolled {
background-color: white;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
/* Parallax effect */
.parallax {
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
/* Floating petals animation */
.petal {
position: absolute;
width: 15px;
height: 15px;
background-size: contain;
background-repeat: no-repeat;
pointer-events: none;
z-index: 1;
}
/* WhatsApp floating button */
.whatsapp-float {
position: fixed;
bottom: 30px;
right: 30px;
background-color: #25D366;
color: white;
border-radius: 50%;
width: 60px;
height: 60px;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
z-index: 999;
cursor: pointer;
transition: all 0.3s ease;
}
.whatsapp-float:hover {
transform: scale(1.1);
}
/* Product card styles */
.product-card {
border-radius: 10px;
overflow: hidden;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
background-color: white;
}
.product-card:hover {
transform: translateY(-10px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}
.product-image {
width: 100%;
height: 300px;
object-fit: cover;
transition: all 0.5s ease;
}
.product-card:hover .product-image {
transform: scale(1.1);
}
/* Hero section */
.hero-section {
padding-top: 80px;
}
/* Form elements */
input, textarea {
width: 100%;
padding: 0.75rem;
border: 1px solid #E5E7EB;
border-radius: 0.375rem;
font-family: 'Poppins', sans-serif;
}
input:focus, textarea:focus {
outline: none;
border-color: var(--rosewood);
box-shadow: 0 0 0 3px rgba(183, 110, 121, 0.2);
}
/* Responsive styles */
@media (min-width: 768px) {
.md\:flex { display: flex; }
.md\:hidden { display: none; }
.md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.md\:text-left { text-align: left; }
.md\:text-xl { font-size: 1.25rem; }
.md\:text-4xl { font-size: 2.25rem; }
.md\:text-5xl { font-size: 3rem; }
.md\:h-[500px] { height: 500px; }
}
@media (min-width: 1024px) {
.lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lg\:text-6xl { font-size: 3.75rem; }
}
@media (max-width: 768px) {
.section {
padding: 3rem 0;
}
.container {
padding: 0 1rem;
}
}
@media (max-width: 480px) {
.section {
padding: 2rem 0;
}
}
/* Additional utility classes */
.h-\[400px\] { height: 400px; }
.h-\[500px\] { height: 500px; }
/* Tombol navigasi Swiper bergaya rosewood */
.swiper-button-prev,
.swiper-button-next {
background-color: #65000b; /* rosewood */
color: white !important;
border-radius: 9999px; /* bulat penuh */
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
transition: all 0.3s ease;
}
.swiper-button-prev:hover,
.swiper-button-next:hover {
transform: scale(1.1);
box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
/* Ganti panah default Swiper dengan simbol lebih bersih */
.swiper-button-prev::after,
.swiper-button-next::after {
font-size: 16px;
font-weight: bold;
content: '' !important; /* Hapus panah default Swiper */
}
/* Tambahkan panah custom manual */
.swiper-button-prev::before,
.swiper-button-next::before {
content: ''; /* atau gunakan \2039 */
font-size: 24px;
font-weight: bold;
line-height: 1;
}
.swiper-button-next::before {
content: ''; /* atau gunakan \203A */
}
/* Sembunyikan tombol di layar kecil */
@media (max-width: 768px) {
.swiper-button-prev,
.swiper-button-next {
display: none;
}
}