/* Omiren Style Index — front-end styles (dynamic homepage + single entry page).
   Adapted from the original Elementor mockup; #osi keeps these rules scoped
   so they never leak into the surrounding theme. */

#osi *,#osi *::before,#osi *::after{ box-sizing:border-box; margin:0; padding:0; }

#osi{
  --white:#ffffff;
  --off:#f7f6f3;
  --ink:#0a0a0a;
  --line:#0a0a0a;
  --line-soft:#dedad2;
  --grey:#767267;
  --grey-dark:#4a473f;
  --gold:#2a2a2a;
  --gold-deep:#000000;
  background:var(--white); color:var(--ink);
  font-family:'Inter',system-ui,sans-serif; font-weight:400; font-size:15px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  /* Break out of whatever boxed/padded container the page builder nests
     this in (Elementor's default page template, a theme content wrapper,
     etc.) so the design always spans the full browser width, regardless
     of the page's layout setting. The internal .wrap elements still cap
     out at 1240px and center themselves as designed. */
  width:100vw;
  position:relative;
  left:50%;
  right:50%;
  margin-left:-50vw;
  margin-right:-50vw;
  max-width:100vw;
  overflow-x:hidden;
}
#osi a{ color:inherit; text-decoration:none; }
#osi ::selection{ background:var(--gold); color:#fff; }

#osi .headline{ font-family:'Libre Franklin',sans-serif; font-weight:800; letter-spacing:-.01em; }
#osi .kicker{
  font-family:'Inter',sans-serif; font-size:11px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--gold-deep);
}
#osi .wrap{ max-width:1240px; margin:0 auto; padding:0 28px; }
@media (max-width:760px){ #osi .wrap{ padding:0 18px; } }
#osi hr.rule{ border:none; border-top:1px solid var(--line); margin:0; }

/* ---------- Photo card media ---------- */
#osi .card-media{ position:relative; overflow:hidden; background:#111; }
#osi .card-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
#osi .card-media.no-image{ background:linear-gradient(135deg,#2a2a2a,#0a0a0a); }
#osi .scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.75) 100%); }
#osi .scrim.light{ background:linear-gradient(180deg, rgba(255,255,255,0) 45%, rgba(255,255,255,.88) 100%); }

#osi .art-label{ position:relative; z-index:3; width:100%; padding:14px 16px 12px; }
#osi .art-label .lt{ font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:#f3efe4; opacity:.9; }
#osi .art-label .lm{ font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:15px; color:#fff; margin-top:2px; }
#osi .art-label.on-light .lt{ color:#5c5541; }
#osi .art-label.on-light .lm{ color:#1a1a1a; }

/* ---------- Lead / Hero ---------- */
#osi .lead{ padding:36px 0 0; border-bottom:1px solid var(--line); }
#osi .lead-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:44px; padding-bottom:34px; }
@media (max-width:900px){ #osi .lead-grid{ grid-template-columns:1fr; } }
#osi .lead-grid.no-media{ grid-template-columns:1fr; }
#osi .lead-media{ aspect-ratio:16/10; }
#osi .lead-text{ padding-top:6px; }
#osi .lead-text .kicker{ display:block; margin-bottom:14px; }
#osi h1.lead-title{ font-family:'Libre Franklin',sans-serif; font-weight:900; font-size:clamp(30px,3.6vw,46px); line-height:1.05; letter-spacing:-.015em; }
#osi .lead-dek{ font-size:15px; color:var(--grey-dark); margin-top:16px; line-height:1.75; max-width:520px; }
#osi .lead-meta{ display:flex; gap:18px; margin-top:22px; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--grey); flex-wrap:wrap; }
#osi .lead-side h4{ font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); margin-bottom:16px; padding-bottom:10px; border-bottom:2px solid var(--ink); }
#osi .trend-item{ display:grid; grid-template-columns:20px 1fr; gap:12px; padding:14px 0; }
#osi .trend-num{ font-family:'Libre Franklin'; font-weight:800; color:var(--gold); font-size:14px; }
#osi .trend-h{ font-size:13.5px; font-weight:600; line-height:1.4; }
#osi .trend-m{ font-size:10.5px; color:var(--grey); margin-top:4px; letter-spacing:.03em; text-transform:uppercase; }

/* ---------- Section shell ---------- */
#osi section{ padding:56px 0; border-bottom:1px solid var(--line); }
@media (max-width:760px){ #osi section{ padding:40px 0; } }
#osi .section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:30px; padding-bottom:16px; border-bottom:2px solid var(--ink); }
#osi .section-title{ font-family:'Libre Franklin',sans-serif; font-weight:800; font-size:clamp(22px,2.4vw,30px); letter-spacing:-.01em; }
#osi .section-desc{ font-size:13px; color:var(--grey-dark); max-width:380px; line-height:1.7; text-align:right; }
@media (max-width:760px){ #osi .section-desc{ text-align:left; } }

/* ---------- Intro ---------- */
#osi .intro-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; }
@media (max-width:860px){ #osi .intro-grid{ grid-template-columns:1fr; gap:30px; } }
#osi .intro-lead{ font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:clamp(21px,2.2vw,28px); line-height:1.4; }
#osi .intro-lead b{ font-style:normal; color:var(--gold-deep); }
#osi .fn-item{ padding:20px 0; border-top:1px solid var(--line-soft); display:grid; grid-template-columns:34px 1fr; gap:16px; }
#osi .fn-item:last-child{ border-bottom:1px solid var(--line-soft); }
#osi .fn-tag{ font-family:'Libre Franklin'; font-weight:800; color:var(--gold); font-size:13px; }
#osi .fn-h{ font-size:12.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:6px; }
#osi .fn-p{ font-size:13px; color:var(--grey-dark); line-height:1.75; max-width:460px; }

/* ---------- Browse strips ---------- */
#osi .browse-strip{ display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--line-soft); }
#osi .browse-item{ flex:1 1 220px; padding:22px 20px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); transition:.2s; }
#osi .browse-item:hover{ background:var(--off); }
#osi .browse-item .bi-num{ font-family:'Libre Franklin'; font-weight:800; color:var(--gold); font-size:12px; }
#osi .browse-item .bi-name{ font-family:'Libre Franklin'; font-weight:800; font-size:19px; margin-top:14px; }
#osi .browse-item .bi-sub{ font-size:11.5px; color:var(--grey); margin-top:7px; line-height:1.6; }

#osi .browse-item.region-africa{ border-top:3px solid #1f6e42; background:#eef5ee; }
#osi .browse-item.region-africa .bi-num{ color:#1f6e42; }
#osi .browse-item.region-africa:hover{ background:#e2eee2; }
#osi .browse-item.region-caribbean{ border-top:3px solid #0f8a86; background:#eaf6f5; }
#osi .browse-item.region-caribbean .bi-num{ color:#0f8a86; }
#osi .browse-item.region-caribbean:hover{ background:#ddf0ee; }
#osi .browse-item.region-latam{ border-top:3px solid #c1552c; background:#fbeee6; }
#osi .browse-item.region-latam .bi-num{ color:#c1552c; }
#osi .browse-item.region-latam:hover{ background:#f7e0d3; }
#osi .browse-item.region-diaspora{ border-top:3px solid #33448c; background:#eceef8; }
#osi .browse-item.region-diaspora .bi-num{ color:#33448c; }
#osi .browse-item.region-diaspora:hover{ background:#dfe3f2; }

#osi .browse-item.role-designer{ border-top:3px solid #7a2048; background:#f5e9ee; }
#osi .browse-item.role-designer .bi-num{ color:#7a2048; }
#osi .browse-item.role-designer:hover{ background:#efdce4; }
#osi .browse-item.role-boutique{ border-top:3px solid #1f6b5a; background:#e8f3f0; }
#osi .browse-item.role-boutique .bi-num{ color:#1f6b5a; }
#osi .browse-item.role-boutique:hover{ background:#dbece7; }
#osi .browse-item.role-stylist{ border-top:3px solid #5b3f8a; background:#eee9f5; }
#osi .browse-item.role-stylist .bi-num{ color:#5b3f8a; }
#osi .browse-item.role-stylist:hover{ background:#e2dbee; }
#osi .browse-item.role-lexicon{ border-top:3px solid #8a3f2e; background:#f6e9e6; }
#osi .browse-item.role-lexicon .bi-num{ color:#8a3f2e; }
#osi .browse-item.role-lexicon:hover{ background:#f0dbd6; }

#osi .browse-item.focus-rtw{ border-top:3px solid #2f5d8a; background:#e8eef5; }
#osi .browse-item.focus-rtw .bi-num{ color:#2f5d8a; }
#osi .browse-item.focus-rtw:hover{ background:#dbe6f0; }
#osi .browse-item.focus-bridal{ border-top:3px solid #b5446e; background:#f8e9ee; }
#osi .browse-item.focus-bridal .bi-num{ color:#b5446e; }
#osi .browse-item.focus-bridal:hover{ background:#f3dce5; }
#osi .browse-item.focus-menswear{ border-top:3px solid #1f7a72; background:#e6f3f1; }
#osi .browse-item.focus-menswear .bi-num{ color:#1f7a72; }
#osi .browse-item.focus-menswear:hover{ background:#d8ece9; }
#osi .browse-item.focus-accessories{ border-top:3px solid #6b4a8a; background:#eee9f5; }
#osi .browse-item.focus-accessories .bi-num{ color:#6b4a8a; }
#osi .browse-item.focus-accessories:hover{ background:#e2dbee; }
#osi .browse-item.focus-beauty{ border-top:3px solid #b8492f; background:#f7e9e5; }
#osi .browse-item.focus-beauty .bi-num{ color:#b8492f; }
#osi .browse-item.focus-beauty:hover{ background:#f2dbd4; }
#osi .browse-item.focus-resort{ border-top:3px solid #7a8a2e; background:#f1f3e6; }
#osi .browse-item.focus-resort .bi-num{ color:#7a8a2e; }
#osi .browse-item.focus-resort:hover{ background:#e7ebd6; }

/* ---------- Article-style cards ---------- */
#osi .card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line-soft); border-left:1px solid var(--line-soft); }
@media (max-width:960px){ #osi .card-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ #osi .card-grid{ grid-template-columns:1fr; } }

#osi .card{ border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); display:flex; flex-direction:column; transition:.2s; }
#osi .card:hover{ background:var(--off); }
#osi .card-media{ aspect-ratio:4/5; display:flex; align-items:flex-end; }
#osi .card-body{ padding:18px 18px 20px; flex:1; display:flex; flex-direction:column; }
#osi .card-kicker{ font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:8px; }
#osi .card-title{ font-family:'Libre Franklin',sans-serif; font-weight:800; font-size:19px; letter-spacing:-.005em; }
#osi .card-tag{ font-size:11.5px; color:var(--grey-dark); margin-top:4px; }
#osi .card-url{ font-family:'Courier New',monospace; font-size:9.5px; color:var(--grey); margin-top:7px; word-break:break-all; opacity:.85; }
#osi .card-desc{ font-size:12.5px; color:var(--grey-dark); line-height:1.7; margin-top:10px; flex:1; }
#osi .card-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:14px; padding-top:12px; border-top:1px solid var(--line-soft); }
#osi .card-tier{ font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--grey); }
#osi .card-link{ font-size:11.5px; font-weight:700; color:var(--gold-deep); }
#osi .card-link:hover{ color:var(--gold); }
#osi .card.coming{ opacity:.85; }
#osi .badge-soon{ position:absolute; top:12px; right:12px; z-index:4; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:var(--gold-deep); padding:4px 9px; }
#osi .card-empty{ padding:26px 20px; color:var(--grey); font-size:13px; }

/* ---------- Stats ---------- */
#osi .stats-band{ background:var(--ink); color:var(--white); }
#osi .stats-band .section-head{ border-bottom-color:rgba(255,255,255,.25); }
#osi .stats-band .section-title{ color:#fff; }
#osi .stats-band .section-desc{ color:#b9b4a6; }
#osi .stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.2); }
@media (max-width:760px){ #osi .stats-grid{ grid-template-columns:repeat(2,1fr); } }
#osi .stat-cell{ padding:28px 24px; border-left:1px solid rgba(255,255,255,.2); }
#osi .stat-cell:first-child{ border-left:none; }
@media (max-width:760px){ #osi .stat-cell:nth-child(2n+1){ border-left:none; } #osi .stat-cell{ border-top:1px solid rgba(255,255,255,.2); } #osi .stat-cell:nth-child(-n+2){ border-top:none; } }
#osi .stat-num{ font-family:'Libre Franklin'; font-weight:900; font-size:38px; display:flex; align-items:baseline; gap:4px; }
#osi .stat-num .suf{ font-size:15px; color:#cfc9b8; }
#osi .stat-lbl{ font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:#cfc9b8; margin-top:8px; }
#osi .stat-delta{ font-size:10.5px; color:#cfc9b8; margin-top:10px; }

/* ---------- Search preview ---------- */
#osi .search-shell{ border:1px solid var(--ink); }
#osi .search-top{ padding:16px 20px; border-bottom:1px solid var(--line-soft); }
#osi .search-input{ width:100%; border:none; border-bottom:1px solid var(--ink); padding:8px 2px; font-family:'Libre Franklin'; font-weight:700; font-size:16px; color:var(--ink); background:transparent; }
#osi .search-input::placeholder{ color:var(--grey); font-weight:400; }
#osi .filter-row{ display:flex; gap:8px; padding:14px 20px; flex-wrap:wrap; border-bottom:1px solid var(--line-soft); }
#osi .filter-chip{ font-size:10.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:7px 13px; border:1px solid var(--line-soft); color:var(--grey-dark); cursor:pointer; transition:.2s; background:none; }
#osi .filter-chip:hover{ border-color:var(--gold); color:var(--ink); }
#osi .filter-chip.active{ background:var(--ink); color:var(--white); border-color:var(--ink); }
#osi .result-row{ display:grid; grid-template-columns:40px 2fr 1fr 1fr 70px; align-items:center; padding:13px 20px; border-bottom:1px solid var(--line-soft); font-size:13px; transition:.15s; }
#osi .result-row:hover{ background:var(--off); }
#osi .result-row:last-child{ border-bottom:none; }
#osi .result-row.is-hidden{ display:none; }
@media (max-width:760px){ #osi .result-row{ grid-template-columns:1fr; gap:2px; padding:14px 16px;} }
#osi .r-avatar{ width:28px; height:28px; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Libre Franklin'; font-weight:800; font-size:12px; border-radius:50%; overflow:hidden; }
#osi .r-avatar img{ width:100%; height:100%; object-fit:cover; }
#osi .r-name{ font-weight:700; font-size:14px; }
#osi .r-name span{ display:block; font-weight:400; font-size:10.5px; color:var(--grey); margin-top:2px; }
#osi .r-tag{ color:var(--grey-dark); font-size:11px; }
#osi .r-cta{ color:var(--gold-deep); font-size:11px; font-weight:700; text-align:right; }
#osi .search-empty{ padding:20px; font-size:13px; color:var(--grey); display:none; }
#osi .search-empty.is-visible{ display:block; }

/* ---------- Methodology ---------- */
#osi .method-grid{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-soft); border-left:1px solid var(--line-soft); }
@media (max-width:760px){ #osi .method-grid{ grid-template-columns:repeat(2,1fr); } }
#osi .method-step{ padding:22px 20px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
#osi .method-num{ font-size:10px; font-weight:700; letter-spacing:.06em; color:var(--gold-deep); text-transform:uppercase; }
#osi .method-h{ font-family:'Libre Franklin'; font-weight:800; font-size:16px; margin-top:10px; }
#osi .method-p{ font-size:11.5px; color:var(--grey-dark); line-height:1.7; margin-top:8px; }

/* ---------- Newsletter ---------- */
#osi .news-band{ background:var(--off); border-bottom:1px solid var(--line); }
#osi .news-inner{ display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; padding:50px 0; }
@media (max-width:860px){ #osi .news-inner{ grid-template-columns:1fr; } }
#osi .news-title{ font-family:'Libre Franklin'; font-weight:900; font-size:clamp(24px,3vw,34px); letter-spacing:-.01em; }
#osi .news-title b{ color:var(--gold-deep); }
#osi .news-sub{ font-size:13px; color:var(--grey-dark); margin-top:12px; max-width:420px; line-height:1.75; }
#osi .news-form{ display:flex; border-bottom:2px solid var(--ink); }
#osi .news-form input{ flex:1; background:transparent; border:none; padding:12px 4px; font-family:'Inter'; font-size:14px; }
#osi .news-form input::placeholder{ color:var(--grey); }
#osi .news-form button{ background:var(--ink); color:#fff; border:none; padding:0 22px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
#osi .news-form button:hover{ background:var(--gold); }
#osi .news-note{ font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--grey); margin-top:12px; }

/* ---------- Closing credit strip ---------- */
#osi .credit-strip{ padding:20px 0; border-bottom:none; }
#osi .credit-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-size:10.5px; color:var(--grey); letter-spacing:.04em; text-transform:uppercase; }
#osi .credit-word{ font-family:'Libre Franklin'; font-weight:900; letter-spacing:.02em; font-size:14px; color:var(--ink); text-transform:none; }
#osi .credit-word b{ color:var(--gold-deep); }

#osi .reveal{ opacity:0; transform:translateY(14px); transition:opacity .55s ease, transform .55s ease; }
#osi .reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ #osi .reveal{ opacity:1; transform:none; transition:none; } }
#osi :focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

/* ================================================================
   SINGLE ENTRY PAGE — profile layout for one designer/boutique/
   stylist/lexicon term.
================================================================ */
#osi .entry-hero{ padding:36px 0 40px; border-bottom:1px solid var(--line); }
#osi .entry-crumb{ font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--grey); margin-bottom:18px; }
#osi .entry-crumb a:hover{ color:var(--ink); }
#osi .entry-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:48px; align-items:start; }
@media (max-width:900px){ #osi .entry-grid{ grid-template-columns:1fr; } }
#osi .entry-media{ aspect-ratio:4/5; }
#osi h1.entry-title{ font-family:'Libre Franklin',sans-serif; font-weight:900; font-size:clamp(30px,4vw,44px); line-height:1.05; letter-spacing:-.015em; }
#osi .entry-tagline{ font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:19px; color:var(--grey-dark); margin-top:14px; }
#osi .entry-badges{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
#osi .entry-badge{ font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:6px 12px; border:1px solid var(--line-soft); color:var(--grey-dark); }
#osi .entry-overview{ font-size:14.5px; color:var(--grey-dark); line-height:1.85; margin-top:22px; max-width:560px; }
#osi .entry-meta-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:26px; border-top:1px solid var(--line-soft); }
#osi .entry-meta-cell{ padding:14px 16px 14px 0; }
#osi .entry-meta-cell + .entry-meta-cell{ padding-left:16px; }
#osi .entry-meta-lbl{ font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--grey); }
#osi .entry-meta-val{ font-family:'Libre Franklin'; font-weight:800; font-size:14px; margin-top:5px; }

#osi .entry-block{ padding:44px 0; border-bottom:1px solid var(--line); }
#osi .entry-block .section-title{ margin-bottom:20px; }
#osi .style-grid{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-soft); border-left:1px solid var(--line-soft); }
@media (max-width:760px){ #osi .style-grid{ grid-template-columns:repeat(2,1fr); } }
#osi .style-cell{ padding:18px 18px; border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
#osi .style-lbl{ font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--grey); }
#osi .style-val{ font-size:13.5px; font-weight:600; margin-top:8px; line-height:1.5; }
#osi .prose{ font-size:13.5px; color:var(--grey-dark); line-height:1.85; max-width:640px; }
#osi .shop-list{ margin-top:6px; }
#osi .shop-row{ display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-top:1px solid var(--line-soft); }
#osi .shop-row:last-child{ border-bottom:1px solid var(--line-soft); }
#osi .shop-name{ font-weight:700; font-size:14px; }
#osi .shop-cta{ font-size:11.5px; font-weight:700; color:var(--gold-deep); }
#osi .shop-cta:hover{ color:var(--gold); }
#osi .tag-pill-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:6px; }
#osi .tag-pill{ font-size:10.5px; padding:6px 12px; border:1px solid var(--line-soft); color:var(--grey-dark); }
#osi .related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line-soft); border-left:1px solid var(--line-soft); }
@media (max-width:760px){ #osi .related-grid{ grid-template-columns:1fr; } }
