/* ============================================================
   Omnicon Instruments — design tokens (from R0 Brand Guidelines)
   ============================================================ */
@font-face{font-family:"Effra";src:local("Effra"),local("Montserrat");font-weight:400;font-style:normal}

:root{
  --font-core:"Effra",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --font-display:var(--font-core);
  --font-body:var(--font-core);

  --warm-purple:#A33293;
  --petal-poise:#F9E5EF;
  --opulent-orange:#F1603F;

  --purple-100:#F9E5EF; --purple-200:#F0D0E8; --purple-300:#E0A9D6; --purple-400:#C97FBC;
  --purple-500:#B4569F; --purple-600:#A33293; --purple-700:#83277A; --purple-800:#5E1B58; --purple-900:#3B1137;

  --orange-100:#FDEDE8; --orange-200:#FBD3C7; --orange-300:#F7A992; --orange-400:#F1603F; --orange-500:#D64A2A; --orange-600:#A9351B;

  --white:#FFFFFF; --black:#000000;
  --ink-1:#141216; --ink-2:#3A353D; --ink-3:#6B6470; --ink-4:#9B94A0;
  --grey-100:#F6F5F7; --grey-200:#EDEBEF; --grey-300:#DDDAE0; --grey-400:#C4BFC8;

  --text-heading:var(--ink-1); --text-body:var(--ink-2); --text-muted:var(--ink-3);
  --text-link:var(--purple-600); --text-link-hover:var(--purple-700);

  --surface-page:var(--white); --surface-subtle:var(--grey-100); --surface-tint:var(--petal-poise);
  --surface-brand:var(--warm-purple); --surface-brand-deep:var(--purple-800);

  --border-subtle:var(--grey-200); --border-default:var(--grey-300); --border-brand:var(--warm-purple);

  --action-primary:var(--warm-purple); --action-primary-hover:var(--purple-700);
  --action-accent:var(--opulent-orange); --action-accent-hover:var(--orange-500);
  --focus-ring:var(--purple-400);

  --size-display:80px; --lh-display:1.02; --weight-display:800;
  --size-h1:54px; --lh-h1:1.06; --weight-h1:700;
  --size-h2:36px; --lh-h2:1.16; --weight-h2:600;
  --size-h3:26px; --lh-h3:1.26; --weight-h3:600;
  --size-body-lg:20px; --lh-body-lg:1.55;
  --size-body:17px; --lh-body:1.6;
  --size-small:15px; --lh-small:1.5;
  --size-caption:13px; --size-eyebrow:12px;

  --weight-medium:500; --weight-semibold:600; --weight-bold:700;
  --track-display:-0.022em; --track-heading:-0.014em; --track-eyebrow:0.14em;

  --space-4:16px; --space-6:24px; --space-8:32px; --space-10:40px; --space-16:64px;
  --container-max:1240px; --container-gutter:32px;

  --radius-xs:4px; --radius-sm:6px; --radius-md:10px; --radius-lg:16px;
  --shadow-sm:0 2px 6px rgba(20,18,22,.07); --shadow-md:0 8px 24px rgba(20,18,22,.09); --shadow-lg:0 20px 48px rgba(20,18,22,.12);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--size-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{color:var(--text-heading);font-family:var(--font-display);margin:0}
h1{font-size:var(--size-h1);line-height:var(--lh-h1);font-weight:var(--weight-h1);letter-spacing:var(--track-heading)}
h2{font-size:var(--size-h2);line-height:var(--lh-h2);font-weight:var(--weight-h2);letter-spacing:var(--track-heading)}
h3{font-size:var(--size-h3);line-height:var(--lh-h3);font-weight:var(--weight-h3)}
p{margin:0}
img{max-width:100%;display:block}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
ul{list-style:none;margin:0;padding:0}

.om-eyebrow{font-size:var(--size-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--text-muted)}
.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-gutter)}
.section{padding:96px 0}
.section--tight{padding:64px 0}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-core);font-weight:var(--weight-semibold);font-size:var(--size-small);border-radius:var(--radius-sm);padding:13px 22px;border:1px solid transparent;cursor:pointer;transition:all .14s ease;white-space:nowrap}
.btn-lg{padding:16px 28px;font-size:16px}
.btn-primary{background:var(--action-primary);color:#fff}
.btn-primary:hover{background:var(--action-primary-hover);color:#fff}
.btn-accent{background:var(--action-accent);color:#fff}
.btn-accent:hover{background:var(--action-accent-hover);color:#fff}
.btn-secondary{background:transparent;color:var(--purple-700);border-color:var(--border-default)}
.btn-secondary:hover{border-color:var(--purple-600);color:var(--purple-700)}
.btn-inverse{background:#fff;color:var(--purple-700)}
.btn-inverse:hover{background:var(--petal-poise);color:var(--purple-800)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.1)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle)}
.site-header .container{height:76px;display:flex;align-items:center;gap:40px}
.site-logo img{height:28px;width:auto;max-width:none}
.site-nav{display:flex;gap:28px;flex:1}
.site-nav a{font-size:var(--size-small);font-weight:var(--weight-medium);color:var(--ink-2);padding-bottom:4px;border-bottom:2px solid transparent}
.site-nav a.active,.site-nav a:hover{color:var(--purple-700);border-bottom-color:var(--warm-purple)}
.site-actions{display:flex;gap:12px;align-items:center;margin-left:auto}
.site-burger{display:none;background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);width:38px;height:38px;align-items:center;justify-content:center;cursor:pointer}
.site-drawer{display:none;flex-direction:column;gap:4px;padding:8px var(--container-gutter) 20px;border-top:1px solid var(--border-subtle)}
.site-drawer a{padding:10px 0;font-size:var(--size-small);font-weight:var(--weight-medium);color:var(--ink-2)}
.site-drawer a.active{color:var(--purple-700);font-weight:var(--weight-semibold)}
.site-drawer.open{display:flex}
@media (max-width:900px){.site-nav{display:none}.site-burger{display:inline-flex}}
@media (max-width:520px){.site-quote{display:none}}

/* ---------- Footer ---------- */
.site-footer{background:var(--purple-900);color:rgba(255,255,255,.72);position:relative;overflow:hidden}
.site-footer .monogram{position:absolute;width:420px;opacity:.05;right:-120px;top:-80px}
.footer-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:40px;padding:64px var(--container-gutter) 40px;max-width:var(--container-max);margin:0 auto}
.footer-col{display:flex;flex-direction:column;gap:10px}
.footer-col .om-eyebrow{color:rgba(255,255,255,.6)}
.footer-col a{font-size:var(--size-small);color:rgba(255,255,255,.78)}
.footer-col a:hover{color:#fff}
.footer-brand p{font-size:var(--size-small);line-height:1.6;max-width:280px;color:rgba(255,255,255,.72)}
.footer-brand img{height:28px;width:auto;max-width:none;align-self:flex-start;margin-bottom:16px}
.footer-bottom{position:relative;border-top:1px solid rgba(255,255,255,.12);max-width:var(--container-max);margin:0 auto;padding:20px var(--container-gutter);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:var(--size-caption)}

/* ---------- Page hero (secondary pages) ---------- */
.page-hero{background:var(--petal-poise);position:relative;overflow:hidden}
.page-hero .monogram{position:absolute;width:300px;opacity:.14;right:-60px;top:-80px}
.page-hero .container{position:relative;padding:64px var(--container-gutter)}
.breadcrumb{display:flex;gap:8px;font-size:var(--size-caption);color:var(--purple-700);margin-bottom:16px}
.page-hero h1{color:var(--purple-900);max-width:760px}
.page-hero p.lead{margin-top:14px;font-size:var(--size-body-lg);color:var(--purple-800);max-width:640px}

/* ---------- Section head ---------- */
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px}
.section-head h2{margin-top:10px;max-width:640px}

/* ---------- Cards ---------- */
.card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:28px;display:flex;flex-direction:column;gap:14px;transition:box-shadow .16s ease,border-color .16s ease}
.card.interactive{cursor:pointer}
.card.interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-default)}
.card-icon{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--petal-poise);display:flex;align-items:center;justify-content:center;font-size:20px}
.card h3{font-size:22px}
.card p{font-size:var(--size-small);line-height:1.6;color:var(--text-body)}
.card-footer{display:inline-flex;align-items:center;gap:6px;font-size:var(--size-small);font-weight:var(--weight-semibold);color:var(--purple-600)}
.card-media{height:160px;background:var(--petal-poise);position:relative;overflow:hidden;border-radius:var(--radius-sm) var(--radius-sm) 0 0;margin:-28px -28px 0}
.card-media .monogram{position:absolute;width:200px;opacity:.18;top:-30px;right:-40px}
.card-sku{position:absolute;left:20px;bottom:16px;font-size:var(--size-caption);font-weight:var(--weight-semibold);letter-spacing:.08em;color:var(--purple-700)}

.grid{display:grid;gap:24px}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}

/* ---------- Badges / tags ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--size-caption);font-weight:var(--weight-semibold);padding:5px 12px;border-radius:999px;background:var(--petal-poise);color:var(--purple-700)}
.badge-neutral{background:var(--grey-100);color:var(--ink-2)}
.badge-solid{background:var(--warm-purple);color:#fff}
.badge-success{background:#E6F2ED;color:#1F7A5C}

/* ---------- Hero (home) ---------- */
.hero{position:relative;overflow:hidden;background:var(--warm-purple);color:#fff}
.hero .monogram{position:absolute}
.hero .mono-1{width:620px;opacity:.1;top:-180px;left:-200px}
.hero .mono-2{width:280px;opacity:.1;bottom:-120px;left:42%;transform:rotate(150deg)}
.hero .container{position:relative;padding:104px var(--container-gutter);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:64px;align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.hero-copy .om-eyebrow{color:#fff}
.hero-copy h1{font-size:clamp(40px,6vw,var(--size-display));line-height:var(--lh-display);font-weight:var(--weight-display);letter-spacing:var(--track-display);color:#fff}
.hero-copy p{font-size:var(--size-body-lg);line-height:var(--lh-body-lg);color:#fff;max-width:500px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px}
.hero-media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.hero-media img{width:100%;height:440px;object-fit:cover}

/* ---------- Standards bar ---------- */
.standards{border-bottom:1px solid var(--border-subtle)}
.standards .container{padding:28px var(--container-gutter);display:flex;flex-wrap:wrap;align-items:center;gap:16px 40px}
.standards .om-eyebrow{color:var(--text-muted)}
.standard-item{display:inline-flex;align-items:center;gap:8px;font-size:var(--size-small);font-weight:var(--weight-semibold);color:var(--ink-1)}

/* ---------- CTA band ---------- */
.cta-band{background:var(--purple-800);position:relative;overflow:hidden;color:#fff}
.cta-band .monogram{position:absolute;width:360px;opacity:.08;left:-100px;bottom:-140px;transform:rotate(20deg)}
.cta-band .container{position:relative;padding:80px var(--container-gutter);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.cta-band h2{color:#fff;max-width:640px}
.cta-band p{margin-top:12px;color:rgba(255,255,255,.85);font-size:var(--size-body-lg)}

/* ---------- Why section (home) ---------- */
.why-wrap{position:relative;background:var(--purple-900)}
.why-wrap .bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.why-wrap .container{position:relative;padding:96px var(--container-gutter)}
.why-card{background:var(--warm-purple);border-radius:var(--radius-md);padding:40px;max-width:560px;display:flex;flex-direction:column;gap:18px;align-items:flex-start;position:relative;overflow:hidden;color:#fff}
.why-card .monogram{position:absolute;width:260px;opacity:.1;right:-80px;bottom:-100px}
.why-card .om-eyebrow{color:#fff}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:1px solid var(--grey-300)}
.step{padding:28px 28px 8px 0;display:flex;flex-direction:column;gap:10px}
.step-num{font-size:var(--size-caption);font-weight:var(--weight-semibold);letter-spacing:.08em;color:var(--purple-600)}

/* ---------- Instruments / filters ---------- */
.instruments-layout{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:48px;padding:40px var(--container-gutter) 96px;max-width:var(--container-max);margin:0 auto}
@media (max-width:760px){.instruments-layout{grid-template-columns:1fr}}
.filter-group{display:flex;flex-direction:column;gap:12px;margin-bottom:28px}
.tag{display:inline-flex;align-items:center;font-size:var(--size-small);padding:7px 14px;border-radius:999px;border:1px solid var(--border-default);background:#fff;cursor:pointer;color:var(--ink-2)}
.tag.selected{background:var(--petal-poise);border-color:var(--warm-purple);color:var(--purple-700);font-weight:var(--weight-semibold)}
.search-input{width:100%;padding:11px 14px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--size-small);font-family:var(--font-core)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
.tab{padding:12px 18px;font-size:var(--size-small);font-weight:var(--weight-medium);color:var(--text-muted);border-bottom:2px solid transparent;cursor:pointer;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--font-core)}
.tab.active{color:var(--purple-700);border-bottom-color:var(--warm-purple);font-weight:var(--weight-semibold)}
.instrument-count{font-size:var(--size-caption);color:var(--text-muted)}

/* ---------- Product detail ---------- */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:56px;align-items:start;padding:40px var(--container-gutter) 0;max-width:var(--container-max);margin:0 auto}
.detail-media{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:var(--petal-poise);height:420px}
.detail-media .monogram{position:absolute;width:380px;opacity:.2;top:20px;left:-60px}
.detail-media .caption{position:absolute;right:24px;bottom:24px;font-size:var(--size-caption);color:var(--purple-700)}
.spec-table{width:100%;border-collapse:collapse}
.spec-table th{text-align:left;padding:14px 16px 14px 0;width:200px;font-size:var(--size-small);font-weight:var(--weight-semibold);color:var(--ink-1);border-bottom:1px solid var(--border-subtle)}
.spec-table td{padding:14px 0;font-size:var(--size-small);color:var(--text-body);border-bottom:1px solid var(--border-subtle)}
.doc-row{display:flex;align-items:center;gap:14px;padding:16px 20px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:10px}

/* ---------- Service plans ---------- */
.plan-card{display:flex;flex-direction:column;gap:16px;height:100%}
.plan-card.featured{border-color:var(--warm-purple);box-shadow:var(--shadow-md)}
.plan-head{display:flex;align-items:center;justify-content:space-between;gap:12px}

/* ---------- Contact ---------- */
.contact-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:64px;align-items:start;padding:72px var(--container-gutter) 96px;max-width:var(--container-max);margin:0 auto}
.contact-item{display:flex;gap:12px;align-items:center;font-size:var(--size-small);color:var(--text-body)}
.response-card{position:relative;overflow:hidden;margin-top:20px;border-radius:var(--radius-lg);background:var(--warm-purple);padding:32px;color:#fff}
.response-card .monogram{position:absolute;width:240px;opacity:.1;right:-60px;bottom:-80px}
.form-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:28px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}
.form-field{display:flex;flex-direction:column;gap:6px}
.form-field label{font-size:var(--size-small);font-weight:var(--weight-semibold);color:var(--ink-1)}
.form-field input,.form-field select,.form-field textarea{padding:11px 14px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-family:var(--font-core);font-size:var(--size-small)}
.radio-row{display:flex;gap:16px;flex-wrap:wrap}
.radio-option{display:flex;align-items:center;gap:6px;font-size:var(--size-small)}
.checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:var(--size-small)}
.toast{display:none;align-items:flex-start;gap:10px;background:#E6F2ED;color:#1F7A5C;border-radius:var(--radius-sm);padding:14px 16px;font-size:var(--size-small);margin-bottom:16px}
.toast.visible{display:flex}

/* ---------- Values grid (about) ---------- */
.about-hero{position:relative;overflow:hidden;background:var(--warm-purple)}
.about-hero .mono-1{position:absolute;width:520px;opacity:.1;right:-140px;top:-160px}
.about-hero .mono-2{position:absolute;width:260px;opacity:.1;right:280px;bottom:-150px;transform:rotate(150deg)}
.about-hero .container{position:relative;padding:104px var(--container-gutter);display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.about-hero .om-eyebrow{color:#fff}
.about-hero h1{color:#fff;max-width:820px}
.about-hero p{color:#fff;font-size:var(--size-body-lg);line-height:var(--lh-body-lg);max-width:620px}
.office-row{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--grey-300)}
.office-row:last-child{border-bottom:none}

@media (max-width:640px){
  :root{--size-h1:38px;--size-h2:28px;--size-display:46px}
  .section{padding:64px 0}
  .hero .container{padding:64px var(--container-gutter)}
}

/* ---------- Products ---------- */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#fff;overflow:hidden}
.stat{padding:28px;display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--border-subtle)}
.stat:last-child{border-right:none}
.stat strong{font-size:40px;line-height:1;color:var(--warm-purple);font-weight:var(--weight-semibold);letter-spacing:-.01em}
.stat span{font-size:var(--size-small);color:var(--text-body)}
.check-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px 40px}
.check-list li{display:flex;gap:12px;font-size:var(--size-small);line-height:1.55;color:var(--text-body);list-style:none}
.check-list li::before{content:"✓";color:var(--opulent-orange);font-weight:var(--weight-semibold)}
.callout{background:var(--petal-poise);border-radius:var(--radius-md);padding:32px;display:flex;flex-direction:column;gap:10px}
.callout h3{color:var(--purple-900)}
.callout p{color:var(--purple-800);max-width:760px;line-height:1.6}
.table-scroll{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#fff}
.cmp-table{width:100%;min-width:720px;border-collapse:collapse;font-size:var(--size-small)}
.cmp-table th,.cmp-table td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--border-subtle);vertical-align:top;color:var(--text-body)}
.cmp-table thead th{background:var(--grey-100);color:var(--ink-1);font-weight:var(--weight-semibold)}
.cmp-table tbody th{color:var(--ink-1);font-weight:var(--weight-semibold);width:170px}
.cmp-table .us{background:var(--petal-poise);color:var(--purple-900)}
.cmp-table thead .us{background:var(--warm-purple);color:#fff}
.cmp-table tr:last-child th,.cmp-table tr:last-child td{border-bottom:none}
.fineprint{font-size:var(--size-caption);line-height:1.6;color:var(--text-muted);max-width:900px}
.product-card{text-decoration:none}
.product-card .card-media{height:150px}
.product-card.soon{opacity:.96}
.principal-list{display:flex;flex-direction:column;border-top:1px solid var(--border-subtle)}
.principal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;padding:24px 0;border-bottom:1px solid var(--border-subtle)}
.principal h3{font-size:22px}
.principal p{font-size:var(--size-small);color:var(--text-body);margin-top:4px}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
@media (max-width:600px){.stat{border-right:none;border-bottom:1px solid var(--border-subtle)}.stat:last-child{border-bottom:none}}
.product-card .card-media{height:auto;aspect-ratio:6/5;background:#EEF1F5}
.product-card .card-media .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;top:0;right:0}
.product-shot{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);max-width:900px;margin:0 auto;background:#EEF1F5}
.product-shot img{display:block;width:100%;height:auto}
.gallery{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:24px;margin-top:48px;align-items:end}
.gallery figure{margin:0;display:flex;flex-direction:column;gap:10px}
.gallery img{width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#fff;display:block}
.gallery figcaption{font-size:var(--size-caption);color:var(--text-muted)}
@media (max-width:700px){.gallery{grid-template-columns:1fr}}
.product-card .card-media .photo[src*="ravona-igt200"]{background:#fff}
.product-card .card-media .photo{object-position:50% 45%}
.gallery-even{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));align-items:start}
.gallery-even img{aspect-ratio:4/3;object-fit:cover}
