/* ============================================================ FI-NE & LACUEOR — B2B Partner Portal Complete Styles ============================================================ */ /* ── Design Tokens ────────────────────────────── */ :root { --cream: #f7f4ef; --warm-white: #fdfbf8; --gold: #b8965a; --gold-light: #d4b07a; --gold-pale: #e8d8b8; --charcoal: #1c1c1c; --dark: #0e0e0e; --mid-grey: #7a7265; --light-grey: #d6d0c8; --fine-beige: #e8e0d0; --lacueor-dark: #1a1814; --lacueor-gold: #c9aa5e; --border: rgba(184, 150, 90, 0.25); --font-serif: "Palatino Linotype", Palatino, "Book Antiqua", "Times New Roman", Georgia, serif; --font-sans: "Optima", "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", "Helvetica Neue", Helvetica, Arial, sans-serif; --transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* ── Reset & Base ─────────────────────────────── */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: var(--font-sans); background-color: var(--cream); color: var(--charcoal); min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; } /* Grain overlay */ body::before { content: ""; position: fixed; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E"); pointer-events: none; z-index: 0; opacity: 0.4; } /* ── Utility ──────────────────────────────────── */ .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; } /* ============================================================ TOP BAR ============================================================ */ .topbar { position: fixed; top: 0; left: 0; right: 0; z-index: 100; padding: 0 48px; height: 72px; display: flex; align-items: center; justify-content: space-between; background: rgba(247, 244, 239, 0.88); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); } .topbar-logo { display: flex; align-items: center; gap: 10px; } .topbar-logo img { height: 28px; width: auto; object-fit: contain; } .topbar-label { font-family: var(--font-sans); font-size: 9px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mid-grey); border-left: 1px solid var(--light-grey); padding-left: 12px; margin-left: 4px; line-height: 1.4; } .topbar-nav { display: flex; align-items: center; gap: 32px; } .topbar-nav a { font-size: 10px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mid-grey); text-decoration: none; transition: color var(--transition); } .topbar-nav a:hover { color: var(--gold); } .btn-topbar { font-size: 9px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; padding: 9px 22px; border: 1px solid var(--gold); color: var(--gold); background: transparent; text-decoration: none; transition: all var(--transition); cursor: pointer; } .btn-topbar:hover { background: var(--gold); color: var(--warm-white); } /* ============================================================ HERO ============================================================ */ .hero { position: relative; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 120px 48px 80px; z-index: 1; overflow: hidden; } .hero::after { content: ""; position: absolute; inset: 0; background: radial-gradient( ellipse 80% 60% at 50% 40%, rgba(184, 150, 90, 0.07) 0%, transparent 70% ), radial-gradient( ellipse 50% 40% at 20% 80%, rgba(26, 24, 20, 0.04) 0%, transparent 60% ); pointer-events: none; z-index: 0; } .hero-inner { position: relative; z-index: 1; max-width: 820px; } .hero-eyebrow { font-family: var(--font-sans); font-size: 9px; font-weight: 500; letter-spacing: 0.35em; text-transform: uppercase; color: var(--gold); margin-bottom: 28px; display: flex; align-items: center; justify-content: center; gap: 16px; } .hero-eyebrow::before, .hero-eyebrow::after { content: ""; display: block; width: 40px; height: 1px; background: var(--gold-light); } .hero-title { font-family: var(--font-serif); font-size: clamp(52px, 7vw, 96px); font-weight: 300; letter-spacing: 0.04em; line-height: 1.05; color: var(--charcoal); margin-bottom: 10px; display: block; } .hero-title em { font-style: italic; color: var(--gold); } .hero-ampersand { font-family: var(--font-serif); font-size: clamp(32px, 4vw, 56px); font-weight: 300; color: var(--light-grey); display: block; line-height: 1; margin: 4px 0; } .hero-subtitle { font-family: var(--font-serif); font-size: clamp(14px, 2vw, 18px); font-weight: 300; font-style: italic; color: var(--mid-grey); letter-spacing: 0.06em; margin: 28px auto 0; max-width: 560px; line-height: 1.8; } .hero-rule { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 40px auto 0; } .hero-rule span { display: block; width: 60px; height: 1px; background: linear-gradient(to right, transparent, var(--gold-light)); } .hero-rule span:last-child { background: linear-gradient(to left, transparent, var(--gold-light)); } .hero-rule-diamond { width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); flex-shrink: 0; } .scroll-cue { position: absolute; bottom: 36px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; z-index: 1; animation: scrollBob 2.4s ease-in-out infinite; } .scroll-cue span { font-size: 8px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--light-grey); font-family: var(--font-sans); } .scroll-cue-line { width: 1px; height: 36px; background: linear-gradient(to bottom, var(--gold-light), transparent); } @keyframes scrollBob { 0%, 100% { opacity: 0.5; transform: translateX(-50%) translateY(0); } 50% { opacity: 1; transform: translateX(-50%) translateY(6px); } } /* ============================================================ SECTION WRAPPER ============================================================ */ .section { position: relative; z-index: 1; padding: 80px 48px; } .section-label { font-family: var(--font-sans); font-size: 9px; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); text-align: center; margin-bottom: 12px; } .section-title { font-family: var(--font-serif); font-size: clamp(28px, 4vw, 44px); font-weight: 300; letter-spacing: 0.04em; color: var(--charcoal); text-align: center; margin-bottom: 16px; line-height: 1.2; } .section-body { font-size: 13px; font-weight: 300; line-height: 1.9; color: var(--mid-grey); text-align: center; max-width: 560px; margin: 0 auto 56px; letter-spacing: 0.02em; } /* ============================================================ BRAND CARDS ============================================================ */ .brands-section { background: var(--warm-white); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .brands-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; max-width: 1200px; margin: 0 auto; } .brand-card { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; min-height: 560px; text-decoration: none; cursor: pointer; } .brand-card--fine { background: var(--fine-beige); border-right: 1px solid var(--border); } .brand-card--lacueor { background: var(--lacueor-dark); } .brand-card-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); opacity: 0.55; } .brand-card--fine .brand-card-image { opacity: 0.45; object-position: center 30%; } .brand-card--lacueor .brand-card-image { opacity: 0.5; } .brand-card:hover .brand-card-image { transform: scale(1.04); } .brand-card-overlay { position: absolute; inset: 0; pointer-events: none; } .brand-card--fine .brand-card-overlay { background: linear-gradient( to bottom, rgba(232, 224, 208, 0.2) 0%, rgba(232, 224, 208, 0.6) 50%, rgba(232, 224, 208, 0.92) 100% ); } .brand-card--lacueor .brand-card-overlay { background: linear-gradient( to bottom, rgba(14, 12, 10, 0.1) 0%, rgba(14, 12, 10, 0.55) 50%, rgba(14, 12, 10, 0.93) 100% ); } .brand-card-top-accent { position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 3; transition: opacity var(--transition); opacity: 0; } .brand-card--fine .brand-card-top-accent { background: linear-gradient( to right, transparent, var(--gold), transparent ); } .brand-card--lacueor .brand-card-top-accent { background: linear-gradient( to right, transparent, var(--lacueor-gold), transparent ); } .brand-card:hover .brand-card-top-accent { opacity: 1; } .brand-card-content { position: relative; z-index: 2; width: 100%; padding: 48px 52px; text-align: center; } .brand-card-eyebrow { font-size: 8px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; margin-bottom: 18px; display: block; } .brand-card--fine .brand-card-eyebrow { color: var(--gold); } .brand-card--lacueor .brand-card-eyebrow { color: var(--lacueor-gold); } .brand-card-logo { display: block; width: 52%; max-width: 200px; min-width: 110px; height: auto; object-fit: contain; margin: 0 auto 16px; position: relative; z-index: 2; transition: opacity var(--transition); } .brand-card--fine .brand-card-logo { opacity: 0.88; } .brand-card--lacueor .brand-card-logo { filter: brightness(0) invert(1); opacity: 0.9; } .brand-card:hover .brand-card-logo { opacity: 1; } .brand-card-name { font-family: var(--font-serif); font-size: clamp(36px, 4vw, 58px); font-weight: 300; letter-spacing: 0.08em; line-height: 1; margin-bottom: 14px; display: block; } .brand-card--fine .brand-card-name { color: var(--charcoal); } .brand-card--lacueor .brand-card-name { color: var(--cream); } .brand-card-tagline { font-family: var(--font-serif); font-size: 15px; font-weight: 300; font-style: italic; letter-spacing: 0.04em; line-height: 1.6; margin-bottom: 32px; display: block; } .brand-card--fine .brand-card-tagline { color: var(--mid-grey); } .brand-card--lacueor .brand-card-tagline { color: rgba(247, 244, 239, 0.65); } .brand-card-cta { display: inline-flex; align-items: center; gap: 12px; font-size: 9px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; padding: 12px 32px; border: 1px solid; transition: all var(--transition); } .brand-card--fine .brand-card-cta { color: var(--charcoal); border-color: var(--charcoal); } .brand-card--fine:hover .brand-card-cta { background: var(--charcoal); color: var(--cream); } .brand-card--lacueor .brand-card-cta { color: var(--lacueor-gold); border-color: var(--lacueor-gold); } .brand-card--lacueor:hover .brand-card-cta { background: var(--lacueor-gold); color: var(--lacueor-dark); } .brand-card-cta-arrow { display: inline-block; transition: transform var(--transition); } .brand-card:hover .brand-card-cta-arrow { transform: translateX(4px); } .brands-notice { text-align: center; padding: 20px 48px; font-size: 10px; font-weight: 400; letter-spacing: 0.15em; color: var(--mid-grey); background: var(--cream); border-bottom: 1px solid var(--border); } .brands-notice a { color: var(--gold); text-decoration: none; } /* ============================================================ B2B BENEFITS STRIP ============================================================ */ .b2b-section { background: var(--warm-white); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .b2b-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1100px; margin: 0 auto 56px; } .b2b-benefit { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 48px 36px 44px; border-top: 2px solid var(--gold); border-left: 1px solid var(--border); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--warm-white); transition: background var(--transition), transform var(--transition), box-shadow var(--transition); } .b2b-benefit::before { content: ""; position: absolute; top: -2px; left: 50%; transform: translateX(-50%); width: 0; height: 2px; background: var(--gold-light); transition: width var(--transition); } .b2b-benefit:hover { background: var(--cream); transform: translateY(-5px); box-shadow: 0 16px 48px rgba(184, 150, 90, 0.14); } .b2b-benefit:hover::before { width: 100%; } .b2b-benefit-icon-wrap { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border: 1px solid rgba(184, 150, 90, 0.45); background: var(--cream); margin-bottom: 26px; flex-shrink: 0; transition: background var(--transition), border-color var(--transition); } .b2b-benefit:hover .b2b-benefit-icon-wrap { background: var(--gold); border-color: var(--gold); } .b2b-benefit-icon-wrap svg { width: 26px; height: 26px; stroke: var(--gold); fill: none; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; transition: stroke var(--transition); } .b2b-benefit:hover .b2b-benefit-icon-wrap svg { stroke: var(--warm-white); } .b2b-benefit-title { font-family: var(--font-serif); font-size: 18px; font-weight: 300; letter-spacing: 0.07em; color: var(--charcoal); margin-bottom: 14px; display: block; } .b2b-benefit-rule { width: 32px; height: 1px; background: linear-gradient( to right, transparent, var(--gold), transparent ); margin: 0 auto 16px; flex-shrink: 0; } .b2b-benefit-text { font-size: 12.5px; font-weight: 300; line-height: 1.9; color: var(--mid-grey); letter-spacing: 0.018em; display: block; } .b2b-divider { width: 80px; height: 1px; background: linear-gradient( to right, transparent, var(--gold), transparent ); margin: 0 auto 52px; } .b2b-notice { text-align: center; padding: 20px 48px; font-size: 10px; font-weight: 400; letter-spacing: 0.15em; color: var(--mid-grey); background: var(--cream); border-top: 1px solid var(--border); margin-top: 0; } .b2b-notice a { color: var(--gold); text-decoration: none; font-weight: 600; } .b2b-notice a:hover { color: var(--gold-light); text-decoration: underline; } /* ============================================================ VALUES / BRAND PILLARS STRIP ============================================================ */ .values-strip { background: var(--charcoal); padding: 48px; z-index: 1; position: relative; } .values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; max-width: 1100px; margin: 0 auto; background: rgba(255, 255, 255, 0.06); } .value-item { padding: 36px 32px; text-align: center; background: var(--charcoal); transition: background var(--transition); } .value-item:hover { background: #242420; } .value-number { font-family: var(--font-serif); font-size: 11px; letter-spacing: 0.2em; color: var(--gold); margin-bottom: 12px; } .value-title { font-family: var(--font-serif); font-size: 18px; font-weight: 300; letter-spacing: 0.06em; color: var(--cream); margin-bottom: 10px; } .value-desc { font-size: 10px; font-weight: 300; letter-spacing: 0.08em; line-height: 1.8; color: rgba(247, 244, 239, 0.45); text-transform: uppercase; } /* ============================================================ FOOTER ============================================================ */ footer { position: relative; z-index: 1; background: var(--dark); color: var(--cream); padding: 40px 48px 28px; margin-top: auto; } .footer-inner { max-width: 1200px; margin: 0 auto; } .footer-top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding-bottom: 28px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); gap: 40px; } .footer-brands { display: flex; gap: 28px; align-items: center; } .footer-brand-link { font-family: var(--font-serif); font-size: 15px; font-weight: 300; letter-spacing: 0.12em; color: rgba(247, 244, 239, 0.5); text-decoration: none; transition: color var(--transition); } .footer-brand-link:hover { color: var(--gold); } .footer-brand-sep { color: rgba(255, 255, 255, 0.15); font-size: 12px; } .footer-logo-wrap { text-align: center; } .footer-logo-wrap img { height: 22px; width: auto; opacity: 0.7; filter: brightness(0) invert(1); } .footer-contact { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; } .footer-contact a { font-size: 10px; font-weight: 300; letter-spacing: 0.1em; color: rgba(247, 244, 239, 0.4); text-decoration: none; transition: color var(--transition); } .footer-contact a:hover { color: var(--gold); } .footer-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 20px; flex-wrap: wrap; gap: 12px; } .footer-legal { font-size: 9px; font-weight: 300; letter-spacing: 0.12em; color: rgba(247, 244, 239, 0.25); } .footer-legal a { color: rgba(247, 244, 239, 0.35); text-decoration: none; margin-left: 20px; transition: color var(--transition); } .footer-legal a:hover { color: var(--gold); } .footer-tagline { font-family: var(--font-serif); font-size: 11px; font-style: italic; font-weight: 300; color: rgba(184, 150, 90, 0.45); letter-spacing: 0.08em; } /* ============================================================ RESPONSIVE ============================================================ */ @media (max-width: 960px) { .topbar { padding: 0 24px; } .topbar-nav .nav-hide { display: none; } .hero { padding: 100px 24px 72px; } .section { padding: 64px 24px; } .brands-grid { grid-template-columns: 1fr; } .brand-card--fine { border-right: none; border-bottom: 1px solid var(--border); } .brand-card { min-height: 480px; } .b2b-benefits { grid-template-columns: 1fr; gap: 16px; } .values-grid { grid-template-columns: 1fr 1fr; } .footer-top { grid-template-columns: 1fr; text-align: center; } .footer-brands { justify-content: center; } .footer-contact { align-items: center; } } @media (max-width: 600px) { .topbar { height: 60px; } .topbar-label { display: none; } .hero { padding: 88px 20px 64px; } .section { padding: 52px 20px; } .brands-section { padding: 0; } .brand-card-content { padding: 36px 28px; } .values-grid { grid-template-columns: 1fr; } .footer-top { gap: 20px; } footer { padding: 32px 24px 20px; } .brands-notice { padding: 16px 24px; } }