/* ============================================================ 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: #efe9db; --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); } /* ============================================================ 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; max-width: 1200px; margin: 0 auto; position: relative; } .brand-card { position: relative; display: flex; flex-direction: column; justify-content: space-between; text-decoration: none; cursor: pointer; z-index: 1; } .brand-card--fine { border-right: 1px solid var(--border); } .brand-card-header { padding: 10px 52px 7px; text-align: center; } .brand-card--fine .brand-card-header { background: var(--fine-beige); } .brand-card--lacueor .brand-card-header { background: var(--lacueor-dark); } .brand-card-footer { padding: 7px 52px 14px; text-align: center; } .brand-card--fine .brand-card-footer { background: var(--fine-beige); } .brand-card--lacueor .brand-card-footer { background: var(--lacueor-dark); } .brands-banner { grid-column: 1 / -1; width: 100%; display: block; } .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-eyebrow { font-size: 8px; font-weight: 500; letter-spacing: 0.32em; text-transform: uppercase; margin-bottom: 14px; 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; 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-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: none; 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: 16px; } .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; } .footer-lang select { font-family: var(--font-sans); font-size: 10px; letter-spacing: 0.08em; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, 0.15); background: transparent; color: rgba(247, 244, 239, 0.5); cursor: pointer; outline: none; transition: border-color var(--transition), color var(--transition); } .footer-lang select:hover, .footer-lang select:focus { border-color: var(--gold); color: var(--gold); } .footer-lang select option { background: var(--dark); color: var(--cream); } /* ============================================================ SIGN-UP SECTION ============================================================ */ .signup-section { background: var(--cream); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .signup-inner { max-width: 820px; margin: 0 auto; } .signup-form { max-width: 640px; margin: 0 auto; display: flex; flex-direction: column; gap: 22px; } .signup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; } .form-group { display: flex; flex-direction: column; gap: 8px; } .form-group label { font-size: 9px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--mid-grey); } .form-group input:not([type="checkbox"]), .signup-form textarea { font-family: var(--font-sans); font-size: 13px; font-weight: 300; letter-spacing: 0.04em; padding: 14px 18px; border: 1px solid var(--light-grey); background: var(--warm-white); color: var(--charcoal); outline: none; transition: border-color var(--transition), box-shadow var(--transition); border-radius: 0; -webkit-appearance: none; } .form-group input::placeholder, .signup-form textarea::placeholder { color: var(--light-grey); } .form-group input:not([type="checkbox"]):focus, .signup-form textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184, 150, 90, 0.12); } .form-group--full { grid-column: 1 / -1; } .form-group--half { grid-column: span 1; } .signup-form textarea { resize: vertical; min-height: 120px; } .signup-form .btn-primary { align-self: center; max-width: 300px; margin-top: 8px; padding: 16px 40px; background: var(--charcoal); color: var(--cream); border: 1px solid var(--charcoal); font-family: var(--font-sans); font-size: 9px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; cursor: pointer; transition: all var(--transition); width: 100%; } .signup-form .btn-primary:hover { background: var(--gold); border-color: var(--gold); color: var(--warm-white); } /* Checkbox group */ .checkbox-group { display: flex; flex-wrap: wrap; gap: 10px 20px; padding-top: 4px; } .checkbox-label { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 300; letter-spacing: 0.04em; color: var(--charcoal); cursor: pointer; } .checkbox-label input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--gold); cursor: pointer; margin: 0; } /* Gold rule above the notice */ .signup-notice-rule { width: 60px; height: 1px; background: linear-gradient( to right, transparent, var(--gold), transparent ); margin: 0 auto 24px; } /* Confirmation panel */ .signup-confirm { max-width: 500px; margin: 0 auto; text-align: center; padding: 60px 40px; } .signup-confirm-inner { display: flex; flex-direction: column; align-items: center; gap: 16px; } .signup-confirm-icon { width: 48px; height: 48px; border: 2px solid var(--gold); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 8px; } .signup-confirm-icon::before { content: ""; display: block; width: 14px; height: 7px; border-left: 2px solid var(--gold); border-bottom: 2px solid var(--gold); transform: rotate(-45deg) translateY(-1px); } .signup-confirm-title { font-family: var(--font-serif); font-size: 28px; font-weight: 300; letter-spacing: 0.06em; color: var(--charcoal); } .signup-confirm-body { font-size: 13px; font-weight: 300; line-height: 1.8; color: var(--mid-grey); letter-spacing: 0.02em; max-width: 380px; } /* Error states */ .form-group .field-error { font-size: 9px; font-weight: 500; letter-spacing: 0.1em; color: #c0392b; margin-top: 2px; display: none; } .form-group.has-error .field-error { display: block; } .form-group.has-error input, .form-group.has-error textarea { border-color: #c0392b; } /* ============================================================ RESPONSIVE ============================================================ */ @media (max-width: 960px) { .topbar { padding: 0 24px; } .topbar-nav .nav-hide { display: none; } .section { padding: 64px 24px; } .brands-grid { grid-template-columns: 1fr; } .brand-card--fine { border-right: none; border-bottom: 1px solid var(--border); } .brand-card-header { padding: 24px 28px 16px; } .brand-card-footer { padding: 16px 28px 32px; } .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; } .section { padding: 52px 20px; } .brands-section { padding: 0; } .brand-card-header { padding: 20px 24px 14px; } .brand-card-footer { padding: 14px 24px 28px; } .banner-selector { padding: 16px 20px; flex-wrap: wrap; } .values-grid { grid-template-columns: 1fr; } .footer-top { gap: 20px; } footer { padding: 32px 24px 20px; } .brands-notice { padding: 16px 24px; } .signup-grid { grid-template-columns: 1fr; } .footer-bottom { justify-content: center; text-align: center; } }