@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap'); /* cyrillic-ext */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek-ext */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek-ext */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek-ext */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek-ext */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* vietnamese */ /* latin-ext */ /* latin */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic-ext */ /* cyrillic */ /* greek */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* cyrillic */ /* vietnamese */ /* latin-ext */ /* latin */ /* === */ /* Sonora Vision+ — Brochure commerciale */ .sonora-vision { --sonora-blue: #213584; --sonora-blue-deep: #18256a; --sonora-blue-light: #3a4ea0; --sonora-ink: #0e1430; --sonora-text: #1a2238; --sonora-muted: #5a6378; --sonora-line: #e3e6ee; --sonora-bg: #ffffff; --sonora-bg-soft: #f6f7fb; --sonora-accent: #c9b475; --serif: "Cormorant Garamond", "Times New Roman", serif; --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; --mono: "JetBrains Mono", "SF Mono", Menlo, monospace; --maxw: 1200px; --gutter: clamp(20px, 4vw, 56px); } .sonora-vision * { box-sizing: border-box; } .sonora-vision, .sonora-vision { margin: 0; padding: 0; } .sonora-vision { font-family: var(--sans); color: var(--sonora-text); background: var(--sonora-bg); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } .sonora-vision img { max-width: 100%; display: block; } .sonora-vision a { color: inherit; } /* ====== Layout helpers ====== */ .sonora-vision .wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); } .sonora-vision .section { padding: clamp(72px, 10vw, 140px) 0; border-bottom: 1px solid var(--sonora-line); } .sonora-vision .section--dark { background: var(--sonora-ink); color: #fff; } .sonora-vision .section--soft { background: var(--sonora-bg-soft); } .sonora-vision .section--blue { background: var(--sonora-blue); color: #fff; } .sonora-vision .eyebrow { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--sonora-blue); display: inline-flex; align-items: center; gap: 10px; } .sonora-vision .section--dark .eyebrow, .sonora-vision .section--blue .eyebrow { color: var(--sonora-accent); } .sonora-vision .eyebrow::before { content: ""; width: 24px; height: 1px; background: currentColor; } .sonora-vision h1, .sonora-vision h2, .sonora-vision h3, .sonora-vision h4 { font-family: var(--serif); font-weight: 500; letter-spacing: -0.01em; color: inherit; margin: 0; text-wrap: balance; } .sonora-vision h1 { font-size: clamp(48px, 7vw, 96px); line-height: 1.02; letter-spacing: -0.025em; } .sonora-vision h2 { font-size: clamp(36px, 4.6vw, 64px); line-height: 1.05; } .sonora-vision h3 { font-size: clamp(22px, 2.4vw, 32px); line-height: 1.15; } .sonora-vision h4 { font-size: 18px; line-height: 1.3; font-family: var(--sans); font-weight: 600; letter-spacing: -0.005em; } .sonora-vision p { margin: 0 0 1em; text-wrap: pretty; } .sonora-vision .lede { font-size: clamp(18px, 1.4vw, 22px); line-height: 1.5; color: var(--sonora-muted); font-weight: 400; } .sonora-vision .section--dark .lede, .sonora-vision .section--blue .lede { color: rgba(255,255,255,0.75); } /* ====== Top bar ====== */ .sonora-vision .topbar { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.92); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); border-bottom: 1px solid var(--sonora-line); } .sonora-vision .topbar-inner { display: flex; align-items: center; justify-content: space-between; height: 68px; } .sonora-vision .topbar-logo { display: flex; align-items: center; gap: 14px; } .sonora-vision .topbar-logo .mark { width: 36px; height: 36px; background: var(--sonora-blue); display: grid; place-items: center; color: #fff; font-family: var(--sans); font-weight: 800; font-size: 14px; letter-spacing: 0.04em; } .sonora-vision .topbar-logo .name { font-family: var(--sans); font-weight: 700; font-size: 14px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sonora-ink); } .sonora-vision .topbar-logo .name small { display: block; font-weight: 400; font-size: 10px; letter-spacing: 0.18em; color: var(--sonora-muted); margin-top: 2px; } .sonora-vision .topbar-nav { display: flex; gap: 32px; font-size: 13px; font-weight: 500; } .sonora-vision .topbar-nav a { text-decoration: none; color: var(--sonora-text); letter-spacing: 0.02em; } .sonora-vision .topbar-nav a:hover { color: var(--sonora-blue); } .sonora-vision .topbar-cta { background: var(--sonora-blue); color: #fff; padding: 10px 18px; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: background 0.2s; } .sonora-vision .topbar-cta:hover { background: var(--sonora-blue-deep); } @media (max-width: 820px) { .sonora-vision .topbar-nav { display: none; } } /* ====== Hero ====== */ .sonora-vision .hero { padding: clamp(80px, 12vw, 160px) 0 clamp(60px, 8vw, 100px); background: linear-gradient(180deg, #fbfbfd 0%, #ffffff 100%); border-bottom: 1px solid var(--sonora-line); position: relative; overflow: hidden; } .sonora-vision .hero-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(32px, 5vw, 80px); align-items: center; } @media (max-width: 900px) { .sonora-vision .hero-grid { grid-template-columns: 1fr; } } .sonora-vision .hero h1 .accent { font-style: italic; color: var(--sonora-blue); } .sonora-vision .hero-sub { margin-top: 32px; font-size: clamp(17px, 1.3vw, 20px); color: var(--sonora-muted); max-width: 52ch; line-height: 1.55; } .sonora-vision .hero-meta { display: flex; flex-wrap: wrap; gap: 32px 48px; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--sonora-line); } .sonora-vision .hero-meta-item .k { font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sonora-muted); margin-bottom: 6px; } .sonora-vision .hero-meta-item .v { font-family: var(--serif); font-size: 28px; color: var(--sonora-ink); letter-spacing: -0.01em; } /* Hero visual: before/after slider */ .sonora-vision .beforeafter { position: relative; aspect-ratio: 4/5; background: var(--sonora-bg-soft); overflow: hidden; border-radius: 2px; user-select: none; box-shadow: 0 30px 60px -20px rgba(33,53,132,0.25), 0 12px 24px -10px rgba(0,0,0,0.08); } .sonora-vision .ba-layer { position: absolute; inset: 0; display: grid; grid-template-rows: 1fr; } .sonora-vision .ba-after { clip-path: inset(0 0 0 var(--ba-pos, 50%)); } .sonora-vision .ba-img { width: 100%; height: 100%; position: relative; overflow: hidden; } /* Placeholder room scene with PDLC opaque (left) vs transparent (right) */ .sonora-vision .ba-room { width: 100%; height: 100%; position: relative; } .sonora-vision .ba-room.opaque { background: linear-gradient(180deg, #d8dde6 0%, #b8c0cf 100%); } .sonora-vision .ba-room.opaque::before { /* Frosted glass effect lines */ content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,0.08) 0 2px, transparent 2px 6px), radial-gradient(ellipse at 30% 40%, rgba(255,255,255,0.4), transparent 60%); } .sonora-vision .ba-room.transparent { background: linear-gradient(180deg, #2a3a5e 0%, #4a5d8a 50%, #6b7fa8 100%); } /* Window frame */ .sonora-vision .ba-window { position: absolute; inset: 8% 10%; border: 1px solid rgba(255,255,255,0.4); background: rgba(255,255,255,0.04); display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; } .sonora-vision .ba-window > div { border: 0.5px solid rgba(255,255,255,0.3); } /* Scene visible through transparent state */ .sonora-vision .ba-scene { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.3) 100%), radial-gradient(ellipse at 70% 30%, #f4d59a 0%, transparent 30%), linear-gradient(180deg, #5a7099 0%, #8aa3c4 50%, #c4d2e0 70%, #5a6e4f 70%, #3d5236 100%); z-index: 0; } .sonora-vision .ba-room.transparent .ba-scene { display: block; } .sonora-vision .ba-room.opaque .ba-scene { display: none; } .sonora-vision .ba-label { position: absolute; bottom: 24px; left: 24px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #fff; background: rgba(14, 20, 48, 0.7); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: 8px 14px; z-index: 4; } .sonora-vision .ba-after .ba-label { left: auto; right: 24px; background: rgba(33, 53, 132, 0.85); } .sonora-vision .ba-handle { position: absolute; top: 0; bottom: 0; left: var(--ba-pos, 50%); width: 2px; background: #fff; z-index: 5; pointer-events: none; box-shadow: 0 0 0 1px rgba(0,0,0,0.1), 0 4px 24px rgba(0,0,0,0.3); } .sonora-vision .ba-handle::after { content: ""; position: absolute; top: 50%; left: 50%; width: 48px; height: 48px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%); box-shadow: 0 4px 16px rgba(0,0,0,0.2), 0 0 0 1px rgba(0,0,0,0.05); } .sonora-vision .ba-handle::before { content: "‹ ›"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 18px; font-weight: 700; color: var(--sonora-blue); z-index: 6; letter-spacing: -2px; } .sonora-vision .ba-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; z-index: 10; margin: 0; } /* ====== What is PDLC ====== */ .sonora-vision .what { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 100px); align-items: start; } @media (max-width: 900px) { .sonora-vision .what { grid-template-columns: 1fr; } } .sonora-vision .what-diagram { background: var(--sonora-bg-soft); aspect-ratio: 1/1; display: grid; place-items: center; position: relative; overflow: hidden; } /* Layered diagram of PDLC film */ .sonora-vision .pdlc-diagram { width: 78%; position: relative; } .sonora-vision .pdlc-layer { height: 24px; margin-bottom: 4px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sonora-muted); position: relative; } .sonora-vision .pdlc-layer .bar { position: absolute; inset: 0; z-index: 0; } .sonora-vision .pdlc-layer span { position: relative; z-index: 1; } .sonora-vision .pdlc-layer.glass .bar { background: rgba(33,53,132,0.06); } .sonora-vision .pdlc-layer.adhesive .bar { background: rgba(33,53,132,0.12); } .sonora-vision .pdlc-layer.ito .bar { background: rgba(33,53,132,0.2); } .sonora-vision .pdlc-layer.lc .bar { background: var(--sonora-blue); } .sonora-vision .pdlc-layer.lc { color: #fff; height: 56px; } .sonora-vision .pdlc-layer .v { font-family: var(--mono); font-size: 10px; color: inherit; opacity: 0.7; } /* ====== Points forts (features grid) ====== */ .sonora-vision .features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--sonora-line); border-left: 1px solid var(--sonora-line); margin-top: 64px; } .sonora-vision .feature { border-right: 1px solid var(--sonora-line); border-bottom: 1px solid var(--sonora-line); padding: 36px 28px; background: #fff; position: relative; } .sonora-vision .feature .num { font-family: var(--mono); font-size: 11px; color: var(--sonora-blue); letter-spacing: 0.16em; margin-bottom: 28px; } .sonora-vision .feature h4 { margin-bottom: 12px; font-size: 19px; } .sonora-vision .feature p { font-size: 14px; color: var(--sonora-muted); line-height: 1.55; margin: 0; } @media (max-width: 900px) { .sonora-vision .features { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 540px) { .sonora-vision .features { grid-template-columns: 1fr; } } /* ====== Stats / Chiffres clés ====== */ .sonora-vision .stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; } @media (max-width: 900px) { .sonora-vision .stats { grid-template-columns: repeat(2, 1fr); } } .sonora-vision .stat { padding: 40px 32px; border-right: 1px solid rgba(255,255,255,0.12); } .sonora-vision .stat:last-child { border-right: none; } .sonora-vision .stat .v { font-family: var(--serif); font-size: clamp(48px, 6vw, 80px); line-height: 1; letter-spacing: -0.025em; color: #fff; margin-bottom: 12px; } .sonora-vision .stat .v sup { font-size: 0.4em; vertical-align: super; font-family: var(--sans); letter-spacing: 0.04em; } .sonora-vision .stat .label { font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.6); margin-bottom: 8px; } .sonora-vision .stat .desc { font-size: 13px; color: rgba(255,255,255,0.75); line-height: 1.5; max-width: 30ch; } /* ====== Spec table ====== */ .sonora-vision .spec-table { width: 100%; border-collapse: collapse; margin-top: 48px; font-size: 14px; } .sonora-vision .spec-table th, .sonora-vision .spec-table td { padding: 18px 16px; text-align: left; border-bottom: 1px solid var(--sonora-line); vertical-align: top; } .sonora-vision .spec-table th { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--sonora-muted); font-weight: 500; background: var(--sonora-bg-soft); border-bottom: 1px solid var(--sonora-line); } .sonora-vision .spec-table td:first-child { font-weight: 500; color: var(--sonora-ink); width: 32%; } .sonora-vision .spec-table td .hint { display: block; font-size: 12px; color: var(--sonora-muted); margin-top: 4px; } /* ====== Comparatif ====== */ .sonora-vision .compare { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); border-top: 1px solid var(--sonora-line); margin-top: 48px; } .sonora-vision .compare > div { padding: 20px 24px; border-bottom: 1px solid var(--sonora-line); border-right: 1px solid var(--sonora-line); font-size: 14px; } .sonora-vision .compare > div:nth-child(4n) { border-right: none; } .sonora-vision .compare .head { background: var(--sonora-bg-soft); font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sonora-muted); font-weight: 500; } .sonora-vision .compare .head.pri { background: var(--sonora-blue); color: #fff; } .sonora-vision .compare .row-label { font-weight: 500; color: var(--sonora-ink); } .sonora-vision .compare .yes { color: #1d8a4f; font-weight: 600; } .sonora-vision .compare .no { color: #b94a4a; } .sonora-vision .compare .partial { color: #a07a30; } .sonora-vision .compare .pri-cell { background: rgba(33,53,132,0.04); color: var(--sonora-ink); font-weight: 500; } @media (max-width: 760px) { .sonora-vision .compare { grid-template-columns: 1fr 1fr; font-size: 12px; } .sonora-vision .compare > div:nth-child(4n) { border-right: 1px solid var(--sonora-line); } } /* ====== Applications ====== */ .sonora-vision .applications { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--sonora-line); margin-top: 64px; } @media (max-width: 900px) { .sonora-vision .applications { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 540px) { .sonora-vision .applications { grid-template-columns: 1fr; } } .sonora-vision .app { background: #fff; padding: 32px 28px; display: flex; flex-direction: column; gap: 16px; min-height: 280px; } .sonora-vision .app-img { aspect-ratio: 4/3; background: var(--sonora-bg-soft); margin: -32px -28px 0; position: relative; overflow: hidden; background-image: repeating-linear-gradient( 45deg, rgba(33,53,132,0.04) 0, rgba(33,53,132,0.04) 1px, transparent 1px, transparent 12px ); } .sonora-vision .app-img::after { content: attr(data-label); position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sonora-muted); text-align: center; padding: 0 20px; } .sonora-vision .app-tag { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sonora-blue); } .sonora-vision .app h4 { font-family: var(--serif); font-weight: 500; font-size: 22px; line-height: 1.2; } .sonora-vision .app p { font-size: 14px; color: var(--sonora-muted); margin: 0; line-height: 1.55; } /* ====== Films catalog ====== */ .sonora-vision .films-list { margin-top: 64px; display: grid; gap: 0; border-top: 1px solid var(--sonora-line); } .sonora-vision .film-row { display: grid; grid-template-columns: 80px 1.2fr 2fr 1fr; gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--sonora-line); align-items: center; } @media (max-width: 760px) { .sonora-vision .film-row { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; } } .sonora-vision .film-swatch { width: 80px; height: 80px; border: 1px solid var(--sonora-line); position: relative; overflow: hidden; } .sonora-vision .film-swatch.clear-87 { background: linear-gradient(135deg, rgba(255,255,255,0.95), rgba(220,225,235,0.85)); } .sonora-vision .film-swatch.clear-91 { background: linear-gradient(135deg, rgba(255,255,255,1), rgba(235,240,248,0.95)); } .sonora-vision .film-swatch.gray { background: linear-gradient(135deg, #c5c8cd, #8a8e96); } .sonora-vision .film-swatch.black { background: linear-gradient(135deg, #5a5d63, #2c2e34); } .sonora-vision .film-swatch.color-orange { background: linear-gradient(135deg, #f0b070, #d97a3a); } .sonora-vision .film-swatch.color-green { background: linear-gradient(135deg, #87b09a, #4a7a5e); } .sonora-vision .film-swatch.color-blue { background: linear-gradient(135deg, #8aa5d0, #4a6da0); } .sonora-vision .film-swatch.color-red { background: linear-gradient(135deg, #d08a8a, #a04a4a); } .sonora-vision .film-swatch.logo { background: var(--sonora-blue); display: grid; place-items: center; color: #fff; font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; } .sonora-vision .film-name { font-family: var(--serif); font-size: 22px; line-height: 1.2; } .sonora-vision .film-name small { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sonora-muted); margin-top: 6px; } .sonora-vision .film-desc { font-size: 14px; color: var(--sonora-muted); line-height: 1.55; } .sonora-vision .film-specs { font-family: var(--mono); font-size: 12px; color: var(--sonora-ink); line-height: 1.7; } .sonora-vision .film-specs .lbl { display: inline-block; width: 60px; color: var(--sonora-muted); } /* ====== FAQ ====== */ .sonora-vision .faq { margin-top: 48px; border-top: 1px solid var(--sonora-line); } .sonora-vision .faq-item { border-bottom: 1px solid var(--sonora-line); } .sonora-vision .faq-q { width: 100%; background: none; border: none; padding: 24px 0; text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-family: var(--serif); font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; color: var(--sonora-ink); cursor: pointer; letter-spacing: -0.005em; } .sonora-vision .faq-q:hover { color: var(--sonora-blue); } .sonora-vision .faq-q .icon { flex-shrink: 0; width: 28px; height: 28px; border: 1px solid var(--sonora-line); border-radius: 50%; display: grid; place-items: center; font-family: var(--sans); font-size: 16px; font-weight: 300; color: var(--sonora-blue); transition: transform 0.3s, background 0.2s; } .sonora-vision .faq-item.open .faq-q .icon { transform: rotate(45deg); background: var(--sonora-blue); color: #fff; } .sonora-vision .faq-a { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; } .sonora-vision .faq-a-inner { padding: 0 0 28px; font-size: 15px; color: var(--sonora-muted); line-height: 1.65; max-width: 70ch; } /* ====== Process / Installation ====== */ .sonora-vision .process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 64px; border-top: 1px solid var(--sonora-line); } @media (max-width: 900px) { .sonora-vision .process { grid-template-columns: 1fr 1fr; } } .sonora-vision .step { padding: 32px 24px; border-right: 1px solid var(--sonora-line); border-bottom: 1px solid var(--sonora-line); position: relative; } .sonora-vision .step:last-child { border-right: none; } .sonora-vision .step .step-n { font-family: var(--serif); font-size: 56px; line-height: 1; color: var(--sonora-blue); opacity: 0.25; margin-bottom: 24px; } .sonora-vision .step h4 { margin-bottom: 8px; font-size: 18px; } .sonora-vision .step p { font-size: 13px; color: var(--sonora-muted); margin: 0; line-height: 1.55; } /* ====== CTA / Contact ====== */ .sonora-vision .cta { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; } @media (max-width: 900px) { .sonora-vision .cta { grid-template-columns: 1fr; } } .sonora-vision .cta h2 { color: #fff; } .sonora-vision .cta-card { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); padding: 40px 36px; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } .sonora-vision .cta-card .row { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,0.12); display: flex; flex-direction: column; gap: 4px; } .sonora-vision .cta-card .row:last-child { border-bottom: none; } .sonora-vision .cta-card .row .lbl { font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.55); } .sonora-vision .cta-card .row .val { font-family: var(--serif); font-size: 22px; color: #fff; letter-spacing: -0.005em; } .sonora-vision .cta-card .row .val a { text-decoration: none; } .sonora-vision .cta-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; } .sonora-vision .btn { display: inline-flex; align-items: center; gap: 12px; padding: 16px 28px; font-family: var(--sans); font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; cursor: pointer; border: 1px solid transparent; transition: all 0.2s; } .sonora-vision .btn-primary { background: #fff; color: var(--sonora-ink); } .sonora-vision .btn-primary:hover { background: var(--sonora-accent); color: var(--sonora-ink); } .sonora-vision .btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,0.3); } .sonora-vision .btn-ghost:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.5); } /* ====== Footer ====== */ .sonora-vision .footer { padding: 48px 0 32px; background: var(--sonora-ink); color: rgba(255,255,255,0.6); font-size: 12px; } .sonora-vision .footer-inner { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px; } .sonora-vision .footer-logo { font-family: var(--sans); font-weight: 700; letter-spacing: 0.18em; color: #fff; font-size: 13px; text-transform: uppercase; } /* ====== Section heading composition ====== */ .sonora-vision .section-head { display: grid; grid-template-columns: 1fr 1.5fr; gap: clamp(24px, 5vw, 80px); align-items: end; margin-bottom: clamp(40px, 5vw, 64px); } @media (max-width: 800px) { .sonora-vision .section-head { grid-template-columns: 1fr; align-items: start; } } .sonora-vision .section-head .left { display: flex; flex-direction: column; gap: 18px; } .sonora-vision .section-head .right { color: var(--sonora-muted); font-size: 17px; line-height: 1.6; max-width: 56ch; } .sonora-vision .section--dark .section-head .right, .sonora-vision .section--blue .section-head .right { color: rgba(255,255,255,0.7); } /* Editable text helper */ .sonora-vision [contenteditable="true"] { outline: none; } .sonora-vision [contenteditable="true"]:focus { outline: 2px dashed var(--sonora-blue); outline-offset: 4px; background: rgba(33,53,132,0.04); } .sonora-vision .edit-mode-hint { position: fixed; bottom: 20px; left: 20px; padding: 10px 14px; background: var(--sonora-ink); color: #fff; font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; z-index: 40; display: none; } .sonora-vision body.editing .edit-mode-hint { display: block; } .sonora-vision body.editing [data-editable] { cursor: text; position: relative; } .sonora-vision body.editing [data-editable]:hover { background: rgba(33,53,132,0.06); outline: 1px dashed rgba(33,53,132,0.3); outline-offset: 4px; } /* Print niceties (just in case) */ @media print { .sonora-vision .topbar, .sonora-vision .ba-input, .sonora-vision .edit-mode-hint { display: none; } }