/*
Theme Name: Omni Sun Light
Theme URI: https://omnisunlight.com/
Author: Omni Sun Light
Description: A warm, editorial WordPress block theme for Omni Sun Light. Built for visual editing through the WordPress Site Editor.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: omni-sun-light
*/

:root {
  --osl-ivory:#faf9f6; --osl-sand:#f5f3ef; --osl-ink:#2c2c2c; --osl-muted:#6b6b6b;
  --osl-gold:#c9a96e; --osl-gold-hover:#b8985e; --osl-dark:#1a1a1a; --osl-white:#fff;
}
html { scroll-behavior:smooth; }
body { -webkit-font-smoothing:antialiased; }
a { transition:color .2s ease,background .2s ease,transform .2s ease; }
.osl-container { width:min(calc(100% - 48px),1200px); margin-inline:auto; }
.osl-section { padding:clamp(80px,9vw,130px) 0; }
.osl-eyebrow { margin:0 0 22px!important; color:var(--osl-muted); font-size:12px!important; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.osl-eyebrow-light { color:rgba(255,255,255,.68); }
.osl-button .wp-block-button__link { border-radius:4px; padding:15px 22px; background:var(--osl-gold); color:var(--osl-dark); font-size:13px; font-weight:650; }
.osl-button .wp-block-button__link:hover { background:var(--osl-gold-hover); transform:translateY(-1px); }
.osl-text-link { text-decoration:none; border-bottom:1px solid var(--osl-gold); padding-bottom:4px; font-size:14px; font-weight:600; }

/* Header */
.osl-header { position:sticky; top:0; z-index:50; background:rgba(250,249,246,.94); border-bottom:1px solid rgba(44,44,44,.08); backdrop-filter:blur(15px); }
.osl-header-row { min-height:84px; }
.osl-wordmark a { color:var(--osl-ink); font-family:Arial,sans-serif!important; font-size:14px!important; font-weight:700; letter-spacing:.22em; text-decoration:none; }
.osl-header .wp-block-navigation { font-size:14px; }
.osl-header .wp-block-navigation a:hover { color:var(--osl-gold-hover); }

/* Hero */
.osl-hero { min-height:min(790px,90vh); position:relative; display:flex; align-items:center; background-position:center; background-size:cover; color:white; }
.osl-hero:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,12,12,.8),rgba(12,12,12,.48) 48%,rgba(12,12,12,.12) 78%); }
.osl-hero > .wp-block-cover__inner-container { position:relative; z-index:2; width:min(calc(100% - 48px),1200px); margin:auto; }
.osl-hero-copy { max-width:880px; }
.osl-hero h1 { max-width:850px; font-size:clamp(48px,5.2vw,68px); line-height:1.04; }
.osl-hero-kicker { max-width:720px; margin:25px 0 10px!important; color:var(--osl-gold); font-family:Georgia,serif; font-size:clamp(20px,2vw,27px)!important; line-height:1.35; }
.osl-hero-dek { max-width:720px; margin:0 0 35px!important; color:rgba(255,255,255,.8); font-size:18px; }
.osl-hero-actions { gap:26px; }
.osl-hero-secondary a { color:white!important; background:transparent!important; border-bottom:1px solid var(--osl-gold); border-radius:0!important; padding:10px 0!important; }

/* Values and solutions */
.osl-values { background:var(--osl-sand); border-bottom:1px solid #e5e0d7; }
.osl-values-row { min-height:110px; display:grid!important; grid-template-columns:repeat(6,1fr); gap:0!important; }
.osl-value { min-height:110px; display:flex; flex-direction:column; justify-content:center; padding:16px 20px; border-right:1px solid #ddd8ce; }
.osl-value:first-child { border-left:1px solid #ddd8ce; }
.osl-value strong { color:var(--osl-gold-hover); font-family:Arial,sans-serif; font-size:10px; letter-spacing:.12em; }
.osl-value span { font-family:Georgia,serif; font-size:17px; }
.osl-section-heading { display:grid!important; grid-template-columns:1.45fr .7fr; gap:90px; align-items:end!important; margin-bottom:55px; }
.osl-section-heading p:last-child { color:var(--osl-muted); }
.osl-card-grid { display:grid!important; grid-template-columns:repeat(2,1fr); gap:18px!important; }
.osl-card { min-height:320px; padding:32px; background:white; border:1px solid #ebe7de; border-radius:4px; box-shadow:0 4px 24px rgba(0,0,0,.025); display:flex; flex-direction:column; }
.osl-card:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(0,0,0,.06); }
.osl-card-number { color:var(--osl-gold-hover); font-size:11px; letter-spacing:.13em; }
.osl-card h3 { margin-top:auto; }
.osl-card p { color:var(--osl-muted); font-size:15px; }
.osl-services-action { margin-top:42px; text-align:center; }

/* Trust and editorial */
.osl-trust { background:var(--osl-ivory); }
.osl-trust-grid { display:grid!important; grid-template-columns:1.05fr .95fr; gap:10%; align-items:center!important; }
.osl-trust-image img { width:100%; min-height:590px; object-fit:cover; }
.osl-trust-copy > p:not(.osl-eyebrow) { color:var(--osl-muted); }
.osl-trust-copy .osl-lead { color:var(--osl-ink); font-family:Georgia,serif; font-size:25px; line-height:1.45; }
.osl-markers { display:grid!important; grid-template-columns:repeat(2,1fr); gap:0!important; margin:34px 0; border-top:1px solid #ddd8ce; }
.osl-marker { padding:13px 0; border-bottom:1px solid #ddd8ce; font-size:12px; letter-spacing:.07em; text-transform:uppercase; }
.osl-journal { background:var(--osl-sand); }
.osl-query-grid .wp-block-post-template { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.osl-query-grid .wp-block-post { margin:0; }
.osl-query-grid .wp-block-post-featured-image img { aspect-ratio:4/3; object-fit:cover; }
.osl-query-grid .wp-block-post-title { margin:18px 0 10px; font-size:26px; }
.osl-query-grid .wp-block-post-excerpt { color:var(--osl-muted); font-size:15px; }

/* CTA and footer */
.osl-cta { padding:105px 0; background:var(--osl-dark); color:white; }
.osl-cta-grid { display:grid!important; grid-template-columns:1.1fr .7fr; gap:12%; align-items:end!important; }
.osl-cta-copy p { color:rgba(255,255,255,.62); font-size:15px; }
.osl-footer { padding:80px 0 22px; background:#111; color:rgba(255,255,255,.7); }
.osl-footer h2,.osl-footer h3,.osl-footer h4,.osl-footer .wp-block-site-title a { color:white; }
.osl-footer-grid { display:grid!important; grid-template-columns:1.4fr .8fr .8fr 1.1fr; gap:7%; }
.osl-footer a { color:rgba(255,255,255,.72); }
.osl-footer a:hover { color:var(--osl-gold); }
.osl-footer-bottom { margin-top:55px; padding-top:20px; border-top:1px solid rgba(255,255,255,.13); font-size:11px; }

/* Inner templates */
.osl-page-hero { padding:100px 0 70px; background:var(--osl-sand); border-bottom:1px solid #e5e0d7; }
.osl-page-hero h1 { max-width:930px; }
.osl-content { max-width:760px; margin-inline:auto; padding:80px 24px 110px; }
.osl-content > * { margin-block-start:0; margin-block-end:1.4em; }
.osl-content h2 { margin-top:2em; }
.osl-content blockquote { margin:55px -60px; padding-left:34px; border-left:2px solid var(--osl-gold); font-family:Georgia,serif; font-size:30px; }
.osl-archive-header { padding:110px 0 70px; background:var(--osl-sand); }
.osl-archive { padding:80px 0 120px; }
.osl-form-placeholder { padding:32px; background:var(--osl-sand); border:1px solid #e0dbd1; }

@media (max-width:900px) {
  .osl-values-row { grid-template-columns:repeat(3,1fr); }
  .osl-section-heading,.osl-trust-grid,.osl-cta-grid { grid-template-columns:1fr; gap:48px; }
  .osl-query-grid .wp-block-post-template { grid-template-columns:repeat(2,1fr); }
  .osl-footer-grid { grid-template-columns:repeat(2,1fr); gap:45px; }
}
@media (max-width:600px) {
  .osl-container,.osl-hero > .wp-block-cover__inner-container { width:min(calc(100% - 32px),1200px); }
  .osl-header-row { min-height:70px; }
  .osl-header .wp-block-navigation__responsive-container-open { display:block; }
  .osl-hero { min-height:720px; }
  .osl-hero h1 { font-size:42px; }
  .osl-hero-actions { align-items:flex-start!important; flex-direction:column; }
  .osl-values-row { grid-template-columns:repeat(2,1fr); }
  .osl-card-grid,.osl-query-grid .wp-block-post-template,.osl-footer-grid { grid-template-columns:1fr; }
  .osl-card { min-height:280px; }
  .osl-trust-image img { min-height:390px; }
  .osl-markers { grid-template-columns:1fr; }
  .osl-content blockquote { margin:40px 0; font-size:25px; }
}
