/* royalfilofficial.com — fresh design system: navy ink + amber-gold + terracotta on ivory
   CSS prefix: rfo- | Fonts: Outfit (display) + Karla (body) */

:root{
  --rfo-ink:#1E2A3A;
  --rfo-ink-2:#324357;
  --rfo-gold:#D19A3D;
  --rfo-gold-dark:#A9781E;
  --rfo-terracotta:#B5533C;
  --rfo-cream:#FAF7F1;
  --rfo-cream-2:#F3ECDF;
  --rfo-white:#FFFFFF;
  --rfo-line:#E4DAC6;
  --rfo-text:#2A2E33;
  --rfo-text-soft:#5B6570;
  --rfo-font-display:"Outfit",-apple-system,"Segoe UI",Roboto,sans-serif;
  --rfo-font-body:"Karla",-apple-system,"Segoe UI",Roboto,sans-serif;
  --rfo-radius:16px;
  --rfo-shadow:0 12px 32px rgba(30,42,58,0.10);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--rfo-font-body);
  font-size:19px;
  line-height:1.7;
  color:var(--rfo-text);
  background:var(--rfo-white);
}
h1,h2,h3,h4{
  font-family:var(--rfo-font-display);
  color:var(--rfo-ink);
  line-height:1.2;
  margin:0 0 16px;
  font-weight:700;
}
h1{font-size:clamp(32px,5vw,50px);}
h2{font-size:clamp(26px,3.6vw,36px);}
h3{font-size:22px;}
p{margin:0 0 18px;color:var(--rfo-text-soft);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;}
.rfo-container{max-width:1180px;margin:0 auto;padding:0 24px;}
.rfo-section{padding:72px 0;}
.rfo-section-alt{background:var(--rfo-cream);}
.rfo-eyebrow{
  display:inline-block;
  font-family:var(--rfo-font-display);
  font-size:14px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--rfo-terracotta);
  margin-bottom:12px;
}
.rfo-lead{font-size:21px;color:var(--rfo-text-soft);}

/* Buttons */
.rfo-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:16px 30px;border-radius:999px;font-family:var(--rfo-font-display);
  font-weight:600;font-size:17px;border:2px solid transparent;cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.rfo-btn:hover{transform:translateY(-2px);}
.rfo-btn-primary{background:var(--rfo-gold);color:var(--rfo-ink);box-shadow:0 10px 24px rgba(209,154,61,0.35);}
.rfo-btn-primary:hover{background:var(--rfo-gold-dark);}
.rfo-btn-outline{background:transparent;border-color:var(--rfo-ink);color:var(--rfo-ink);}
.rfo-btn-outline:hover{background:var(--rfo-ink);color:var(--rfo-white);}
.rfo-btn-lg{padding:19px 38px;font-size:18px;}

/* Announcement bar */
.rfo-announce{background:var(--rfo-ink);color:var(--rfo-cream);text-align:center;padding:10px 16px;}
.rfo-announce p{margin:0;font-size:14px;font-weight:600;letter-spacing:0.02em;color:var(--rfo-cream);}

/* Header */
.rfo-header{background:var(--rfo-white);border-bottom:1px solid var(--rfo-line);position:sticky;top:0;z-index:40;}
.rfo-header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:20px;}
.rfo-logo{font-family:var(--rfo-font-display);font-weight:800;font-size:24px;color:var(--rfo-ink);white-space:nowrap;}
.rfo-nav ul{display:flex;gap:26px;list-style:none;}
.rfo-nav a{font-weight:600;font-size:16px;color:var(--rfo-ink-2);padding:6px 0;border-bottom:2px solid transparent;}
.rfo-nav a:hover,.rfo-nav a.active{color:var(--rfo-terracotta);border-color:var(--rfo-terracotta);}
.rfo-header-cta{white-space:nowrap;padding:12px 22px;font-size:15px;}
.rfo-menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;}
.rfo-menu-toggle span{display:block;width:24px;height:2px;background:var(--rfo-ink);}
.rfo-mobile-nav{display:none;background:var(--rfo-white);border-top:1px solid var(--rfo-line);}
.rfo-mobile-nav ul{list-style:none;flex-direction:column;padding:12px 24px;}
.rfo-mobile-nav li{padding:12px 0;border-bottom:1px solid var(--rfo-line);}
.rfo-mobile-nav a{font-weight:600;font-size:17px;color:var(--rfo-ink);}
.rfo-mobile-nav.open{display:block;}

@media(max-width:900px){
  .rfo-nav{display:none;}
  .rfo-header-cta{display:none;}
  .rfo-menu-toggle{display:flex;}
}

/* Hero */
.rfo-hero{padding:56px 0 64px;background:linear-gradient(180deg,var(--rfo-cream) 0%,var(--rfo-white) 100%);}
.rfo-hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:52px;align-items:center;}
.rfo-hero-media{order:2;}
.rfo-hero-copy{order:1;}
.rfo-hero-bottle-wrap{position:relative;}
.rfo-hero-bottle-wrap img{border-radius:var(--rfo-radius);box-shadow:var(--rfo-shadow);}
.rfo-float-badge{position:absolute;background:var(--rfo-white);border-radius:14px;box-shadow:var(--rfo-shadow);padding:10px 16px;display:flex;align-items:center;gap:8px;font-family:var(--rfo-font-display);font-weight:700;font-size:14px;}
.rfo-float-badge.rfo-fb-1{top:14px;left:-18px;}
.rfo-float-badge.rfo-fb-2{bottom:100px;right:-18px;}
.rfo-float-badge.rfo-fb-3{bottom:14px;left:20px;}
.rfo-hero h1{margin-bottom:18px;}
.rfo-hero h1 .rfo-accent{color:var(--rfo-terracotta);}
.rfo-quickfacts{background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:var(--rfo-radius);padding:22px 24px;margin:26px 0;box-shadow:var(--rfo-shadow);}
.rfo-quickfacts dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:0;}
.rfo-quickfacts dt{font-family:var(--rfo-font-display);font-size:13px;text-transform:uppercase;letter-spacing:0.04em;color:var(--rfo-text-soft);margin:0;}
.rfo-quickfacts dd{margin:2px 0 0;font-weight:700;color:var(--rfo-ink);}
.rfo-checklist{list-style:none;margin:22px 0;}
.rfo-checklist li{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px;font-weight:600;color:var(--rfo-ink-2);}
.rfo-checklist li::before{content:"\2713";flex:none;width:26px;height:26px;border-radius:50%;background:var(--rfo-gold);color:var(--rfo-ink);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;}
.rfo-hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin:24px 0;}
.rfo-hero-stats{display:flex;gap:30px;flex-wrap:wrap;margin-top:20px;}
.rfo-hero-stats div{font-family:var(--rfo-font-display);}
.rfo-hero-stats strong{display:block;font-size:24px;color:var(--rfo-ink);}
.rfo-hero-stats span{font-size:14px;color:var(--rfo-text-soft);}

@media(max-width:900px){
  .rfo-hero-grid{grid-template-columns:1fr;}
  .rfo-hero-media{order:1;}
  .rfo-hero-copy{order:2;}
  .rfo-float-badge{position:static;display:inline-flex;margin:8px 8px 0 0;}
  .rfo-hero-bottle-wrap{display:flex;flex-direction:column;}
}

/* Formula Ledger visualization */
.rfo-ledger{background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:var(--rfo-radius);box-shadow:var(--rfo-shadow);margin-top:22px;overflow:hidden;}
.rfo-ledger-head{background:var(--rfo-ink);color:var(--rfo-cream);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;font-family:var(--rfo-font-display);font-weight:700;}
.rfo-ledger-row{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--rfo-line);}
.rfo-ledger-row:last-child{border-bottom:none;}
.rfo-ledger-row .rfo-lr-name{font-weight:700;color:var(--rfo-ink);}
.rfo-ledger-tag{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:5px 12px;border-radius:999px;}
.rfo-ledger-tag.disclosed{background:#E4F3E5;color:#2E6B33;}
.rfo-ledger-tag.withheld{background:#F3E4E1;color:var(--rfo-terracotta);}
.rfo-ledger-foot{background:var(--rfo-cream-2);padding:12px 20px;font-size:14px;color:var(--rfo-text-soft);text-align:center;}

/* Verification cards */
.rfo-verify-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px;}
.rfo-verify-card{background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:14px;padding:24px 20px;text-align:center;box-shadow:var(--rfo-shadow);}
.rfo-verify-card .rfo-vc-icon{font-size:32px;margin-bottom:12px;}
.rfo-verify-card h3{font-size:17px;margin-bottom:8px;}
.rfo-verify-card p{font-size:15px;margin:0;}
@media(max-width:900px){.rfo-verify-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.rfo-verify-grid{grid-template-columns:1fr;}}

/* How it works / pathways */
.rfo-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px;}
.rfo-step{background:var(--rfo-white);border-radius:var(--rfo-radius);border:1px solid var(--rfo-line);padding:30px 26px;box-shadow:var(--rfo-shadow);position:relative;}
.rfo-step .rfo-step-num{font-family:var(--rfo-font-display);font-size:42px;font-weight:800;color:var(--rfo-gold);opacity:0.5;margin-bottom:6px;}
.rfo-path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;}
.rfo-path-card{background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:var(--rfo-radius);padding:28px;box-shadow:var(--rfo-shadow);}
.rfo-path-card .rfo-vc-icon{font-size:30px;}
.rfo-path-card h3{margin-top:10px;}
.rfo-path-card a.rfo-more{font-weight:700;color:var(--rfo-terracotta);text-decoration:underline;}
@media(max-width:900px){.rfo-steps,.rfo-path-grid{grid-template-columns:1fr;}}

/* What is / stats band */
.rfo-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.rfo-stats-band{background:var(--rfo-ink);color:var(--rfo-cream);border-radius:var(--rfo-radius);padding:36px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center;margin:20px 0;}
.rfo-stats-band strong{display:block;font-family:var(--rfo-font-display);font-size:32px;color:var(--rfo-gold);}
.rfo-stats-band span{font-size:14px;color:var(--rfo-cream-2);}
@media(max-width:900px){.rfo-split{grid-template-columns:1fr;}.rfo-stats-band{grid-template-columns:1fr;}}

/* Benefits */
.rfo-benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;}
.rfo-benefit-card{background:var(--rfo-cream);border-radius:var(--rfo-radius);padding:28px;border-left:4px solid var(--rfo-gold);}
@media(max-width:900px){.rfo-benefit-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.rfo-benefit-grid{grid-template-columns:1fr;}}

/* Manufacturing claims / checklist */
.rfo-claims{display:grid;grid-template-columns:1.2fr 0.8fr;gap:40px;align-items:start;}
.rfo-claim-item{display:flex;gap:16px;margin-bottom:22px;}
.rfo-claim-item .rfo-claim-num{font-family:var(--rfo-font-display);font-weight:800;font-size:22px;color:var(--rfo-terracotta);flex:none;width:40px;}
.rfo-guarantee-panel{background:var(--rfo-cream);border-radius:var(--rfo-radius);padding:32px;text-align:center;}
.rfo-guarantee-panel img{width:120px;margin:0 auto 16px;}
.rfo-order-checklist{counter-reset:rfo-count;list-style:none;margin-top:28px;}
.rfo-order-checklist li{counter-increment:rfo-count;position:relative;padding-left:52px;margin-bottom:20px;font-weight:600;color:var(--rfo-ink-2);}
.rfo-order-checklist li::before{content:counter(rfo-count);position:absolute;left:0;top:-2px;width:36px;height:36px;background:var(--rfo-ink);color:var(--rfo-gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--rfo-font-display);font-weight:800;}
@media(max-width:900px){.rfo-claims{grid-template-columns:1fr;}}

/* Safety panel (icon based, no stock doctor photo) */
.rfo-safety-panel{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:flex-start;background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:var(--rfo-radius);padding:36px;}
.rfo-safety-icon{width:80px;height:80px;border-radius:50%;background:var(--rfo-cream-2);display:flex;align-items:center;justify-content:center;font-size:36px;flex:none;}
@media(max-width:700px){.rfo-safety-panel{grid-template-columns:1fr;text-align:center;}.rfo-safety-icon{margin:0 auto;}}

/* Reviews */
.rfo-agg-box{display:flex;align-items:center;gap:28px;background:var(--rfo-cream);border-radius:var(--rfo-radius);padding:28px 32px;margin-bottom:36px;flex-wrap:wrap;}
.rfo-agg-score{font-family:var(--rfo-font-display);font-size:56px;font-weight:800;color:var(--rfo-ink);}
.rfo-agg-stars{color:var(--rfo-gold);font-size:22px;letter-spacing:3px;}
.rfo-agg-bar-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--rfo-text-soft);margin-bottom:4px;}
.rfo-agg-bar-track{flex:1;height:8px;background:var(--rfo-line);border-radius:6px;overflow:hidden;}
.rfo-agg-bar-fill{height:100%;background:var(--rfo-gold);width:0;transition:width 1s ease;}
.rfo-review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.rfo-review-card{background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:var(--rfo-radius);padding:26px;box-shadow:var(--rfo-shadow);display:flex;gap:16px;}
.rfo-review-card img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;}
.rfo-review-stars{color:var(--rfo-gold);font-size:15px;margin-bottom:6px;}
@media(max-width:900px){.rfo-review-grid{grid-template-columns:1fr;}}

/* Pricing */
.rfo-price-compare{background:var(--rfo-ink);color:var(--rfo-cream);border-radius:14px 14px 0 0;padding:16px 24px;display:flex;justify-content:space-between;font-size:14px;font-weight:600;}
.rfo-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-radius:0 0 var(--rfo-radius) var(--rfo-radius);overflow:hidden;box-shadow:var(--rfo-shadow);}
.rfo-price-card{background:var(--rfo-white);padding:34px 26px;text-align:center;border-right:1px solid var(--rfo-line);position:relative;}
.rfo-price-card:last-child{border-right:none;}
.rfo-price-card.popular{background:var(--rfo-cream-2);}
.rfo-price-card.popular::before{content:"MOST POPULAR";position:absolute;top:0;left:0;right:0;background:var(--rfo-terracotta);color:#fff;font-size:12px;font-weight:800;letter-spacing:0.06em;padding:6px;}
.rfo-price-save{display:inline-block;background:#E4F3E5;color:#2E6B33;font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;margin-bottom:10px;}
.rfo-price-big{font-family:var(--rfo-font-display);font-size:40px;font-weight:800;color:var(--rfo-ink);margin:10px 0 2px;}
.rfo-price-big span{font-size:16px;font-weight:600;color:var(--rfo-text-soft);}
.rfo-price-sub{font-size:14px;color:var(--rfo-text-soft);margin-bottom:20px;}
.rfo-price-mini-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px;}
.rfo-price-mini{background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:12px;padding:18px;text-align:center;}
@media(max-width:900px){.rfo-price-grid,.rfo-price-mini-row{grid-template-columns:1fr;}.rfo-price-card{border-right:none;border-bottom:1px solid var(--rfo-line);}}

/* FAQ accordion */
.rfo-faq-item{border-bottom:1px solid var(--rfo-line);}
.rfo-faq-q{width:100%;text-align:left;background:none;border:none;padding:22px 0;font-family:var(--rfo-font-display);font-weight:700;font-size:18px;color:var(--rfo-ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.rfo-faq-q::after{content:"+";font-size:26px;color:var(--rfo-terracotta);flex:none;}
.rfo-faq-item.open .rfo-faq-q::after{content:"\2212";}
.rfo-faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.rfo-faq-item.open .rfo-faq-a{max-height:400px;}
.rfo-faq-a p{padding-bottom:22px;margin:0;}

/* Final CTA */
.rfo-final-cta{background:linear-gradient(135deg,var(--rfo-ink) 0%,#0F1620 100%);color:var(--rfo-cream);border-radius:28px;padding:60px 48px;text-align:center;position:relative;overflow:hidden;}
.rfo-final-cta::before{content:"";position:absolute;top:-60px;right:-60px;width:220px;height:220px;background:var(--rfo-gold);opacity:0.15;border-radius:50%;}
.rfo-final-cta h2{color:var(--rfo-white);}
.rfo-final-cta p{color:var(--rfo-cream-2);max-width:600px;margin-left:auto;margin-right:auto;}
.rfo-final-cta .rfo-btn-primary{margin-top:10px;}

/* Blog */
.rfo-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:32px;}
.rfo-blog-card{background:var(--rfo-white);border:1px solid var(--rfo-line);border-radius:var(--rfo-radius);overflow:hidden;box-shadow:var(--rfo-shadow);}
.rfo-blog-card-body{padding:22px;}
.rfo-blog-tag{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--rfo-terracotta);}
.rfo-article{max-width:760px;margin:0 auto;}
.rfo-article img{border-radius:var(--rfo-radius);margin:24px 0;}
.rfo-article p a,.rfo-article li a{color:var(--rfo-terracotta);text-decoration:underline;text-underline-offset:2px;font-weight:600;}
p a:not(.rfo-btn):not(.rfo-more){color:var(--rfo-terracotta);text-decoration:underline;text-underline-offset:2px;font-weight:600;}
@media(max-width:900px){.rfo-blog-grid{grid-template-columns:1fr;}}

/* Bottom line / summary boxes */
.rfo-callout{background:var(--rfo-cream-2);border-left:4px solid var(--rfo-terracotta);border-radius:0 14px 14px 0;padding:22px 26px;margin:26px 0;}

/* Breadcrumb */
.rfo-crumb{font-size:14px;color:var(--rfo-text-soft);padding:20px 0 0;}
.rfo-crumb a{color:var(--rfo-text-soft);text-decoration:underline;}

/* Contact / about */
.rfo-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.rfo-info-card{background:var(--rfo-cream);border-radius:var(--rfo-radius);padding:28px;margin-bottom:16px;}
@media(max-width:900px){.rfo-contact-grid{grid-template-columns:1fr;}}

/* Table (legal/ingredients hub) */
.rfo-table{width:100%;border-collapse:collapse;margin:24px 0;}
.rfo-table th,.rfo-table td{border:1px solid var(--rfo-line);padding:12px 16px;text-align:left;font-size:16px;}
.rfo-table th{background:var(--rfo-cream);font-family:var(--rfo-font-display);}

/* Footer */
.rfo-footer{background:var(--rfo-ink);color:var(--rfo-cream-2);padding:64px 0 0;}
.rfo-footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;padding-bottom:40px;}
.rfo-footer h3{color:var(--rfo-cream);font-size:16px;margin-bottom:14px;}
.rfo-footer ul{list-style:none;}
.rfo-footer li{margin-bottom:10px;}
.rfo-footer a{color:var(--rfo-cream-2);font-size:15px;}
.rfo-footer a:hover{color:var(--rfo-gold);}
.rfo-logo-footer{color:var(--rfo-cream);margin-bottom:14px;display:inline-block;}
.rfo-footer-brand p{color:var(--rfo-cream-2);font-size:14px;}
.rfo-footer-bottom{border-top:1px solid rgba(255,255,255,0.12);padding:22px 0;}
.rfo-footer-bottom p{color:rgba(250,247,241,0.6);font-size:13px;margin:0;}
@media(max-width:900px){.rfo-footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.rfo-footer-grid{grid-template-columns:1fr;}}

/* 404 */
.rfo-404{text-align:center;padding:100px 0;}
.rfo-404 .rfo-404-code{font-family:var(--rfo-font-display);font-size:90px;font-weight:800;color:var(--rfo-gold);}
