/* type-scale-v1 */
body{ font-size:18px; }
button, input, select, textarea{ font-size:16px; }
/* Shared Sentry Bullion header and footer. Every page links this file and carries the same
   nav and footer markup, so the two can never drift apart again. Colors and fonts come from
   the CSS variables each page already defines. Change header/footer styling here only. */

nav{ background:var(--bone); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }
nav .wrap{ max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:18px 32px; }

.brand{ display:flex; align-items:center; gap:13px; color:inherit; text-decoration:none; }
.brand-mark{ width:40px; height:46px; flex-shrink:0; }
.brand-name{ font-family:'Source Serif 4', serif; font-size:26px; font-weight:600; letter-spacing:0.01em; }

.nav-links{ display:flex; gap:28px; font-size:18px; color:var(--slate); }
.nav-links a{ color:inherit; text-decoration:none; }
.nav-links a:hover{ color:var(--navy); }
.nav-cta{ background:var(--navy); color:var(--bone); padding:12px 22px; border-radius:3px; font-size:17px; font-weight:500; text-decoration:none; transition:background .18s ease; }
.nav-cta:hover{ background:var(--navy-2); }
.nav-toggle{ display:none; width:44px; height:44px; padding:0; margin-left:6px; border:1px solid var(--line); background:#fff; border-radius:4px; cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.nav-toggle span{ display:block; width:20px; height:2px; background:var(--navy); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.nav-toggle:focus-visible{ outline:2px solid var(--brass); outline-offset:2px; }
nav.open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
nav.open .nav-toggle span:nth-child(2){ opacity:0; }
nav.open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (max-width:1100px){ .nav-links{ gap:22px; } }
@media (max-width:900px){
  nav .wrap{ padding:12px 16px; gap:8px; }
  .brand{ margin-right:auto; }
  .nav-toggle{ display:inline-flex; }
  .nav-links{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--bone); border-bottom:1px solid var(--line); box-shadow:0 14px 24px rgba(27,36,48,.12); padding:4px 16px 12px; }
  nav.open .nav-links{ display:flex; }
  .nav-links a{ padding:15px 4px; border-bottom:1px solid var(--line); font-size:20px; color:var(--navy); }
  .nav-links a:last-child{ border-bottom:0; }
}
@media (max-width:420px){ .nav-cta{ padding:9px 13px; font-size:17px; } }

/* Site footer: brand, link columns, contact. The disclosures sit directly under it in their own band. */
.site-footer{ background:var(--navy-deep); color:#C3CAD6; font-size:19px; line-height:1.6; padding:48px 0 22px; }
.site-footer .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; display:flex; flex-direction:column; gap:28px; }
.site-footer .sf-top{ display:grid; grid-template-columns:1.5fr repeat(4,1fr) 1.6fr; gap:32px; align-items:start; }
.site-footer .sf-tag{ margin:12px 0 0; color:#9AA4B2; font-size:18px; max-width:26ch; }
.site-footer h3{ margin:0 0 12px; font-size:17px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-bright, #D2AC78); font-weight:600; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.site-footer a{ color:#E6EAF0; text-decoration:none; }
.site-footer a:hover, .site-footer a:focus-visible{ color:var(--brass-bright, #D2AC78); text-decoration:underline; }
.site-footer .brand-name{ color:#F7F5F0; font-size:24px; }
.site-footer address{ font-style:normal; color:#C3CAD6; }
.site-footer .sf-bottom{ border-top:1px solid rgba(255,255,255,.12); padding-top:18px; color:#9AA4B2; font-size:17px; }
.site-disclosures{ background:#0C1118; color:#D3D9E2; padding:34px 0 44px; border-top:1px solid rgba(255,255,255,.08); }
.site-disclosures .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
.site-disclosures h2{ margin:0 0 14px; font-size:17px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-bright, #D2AC78); font-weight:600; }
.site-disclosures p{ margin:0 0 12px; font-size:18px; line-height:1.65; max-width:96ch; }
.site-disclosures p:last-child{ margin-bottom:0; }
.site-disclosures a{ color:var(--brass-bright, #D2AC78); text-decoration:underline; }
@media (max-width:899px){ .site-footer .sf-top{ grid-template-columns:repeat(2,1fr); } .site-footer .sf-brand{ grid-column:1 / -1; } }
@media (max-width:599px){ .site-footer{ padding-top:36px; } .site-footer .wrap, .site-disclosures .wrap{ padding:0 20px; } .site-footer .sf-top{ grid-template-columns:1fr; gap:24px; } }

/* Custody & compliance: Rocket Dollar link and button (homepage and IRA page). */
.rd-inline{ color:var(--brass-bright); text-decoration:underline; text-underline-offset:3px; }
.rd-inline:hover{ color:var(--bone); }
.custodian-actions{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-top:6px; }
.btn-rd{ display:inline-block; background:var(--brass); color:var(--navy); padding:12px 22px; border-radius:3px; font-weight:600; font-size:18px; text-decoration:none; transition:background .18s ease; }
.custodian-actions{ justify-content:flex-start; }
.custodian-mark{ position:relative; padding-bottom:120px !important; }
.rd-cta{ position:absolute; left:40px; right:40px; bottom:52px; display:flex; }
@media (max-width:820px){ .custodian-mark{ padding-bottom:48px !important; } .rd-cta{ position:static; margin-top:28px; } }
.rd-cta .btn-rd{ flex:1; text-align:center; }
.btn-rd:hover{ background:var(--brass-bright); }

/* Product photo galleries (assets/gallery.js). A plain scroll-snap track works without script. */
.prod-figure.gallery{position:relative; padding:0; display:block; overflow:hidden}
.gal-track{display:flex; height:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch}
.gal-track::-webkit-scrollbar{display:none}
.gal-track:focus-visible{outline:2px solid var(--brass); outline-offset:-2px}
.prod-figure.gallery .gal-track img{flex:0 0 100%; width:100%; height:100%; object-fit:contain; padding:14px; box-sizing:border-box; scroll-snap-align:center; scroll-snap-stop:always; mix-blend-mode:multiply}
.gal-btn{position:absolute; top:50%; transform:translateY(-50%); width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.94); color:var(--navy); display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; z-index:2; transition:opacity .15s ease}
.gal-prev{left:8px} .gal-next{right:8px}
.gal-btn:hover:not(:disabled){border-color:var(--brass)}
.gal-btn:disabled{opacity:.25; cursor:default}
.gal-btn:focus-visible,.gal-dot:focus-visible{outline:2px solid var(--brass); outline-offset:2px}
.gal-dots{position:absolute; left:0; right:0; bottom:6px; display:flex; justify-content:center; gap:2px; z-index:2}
.gal-dot{width:20px; height:20px; padding:0; border:0; background:transparent; cursor:pointer; position:relative}
.gal-dot::after{content:''; position:absolute; left:6px; top:6px; width:8px; height:8px; border-radius:50%; background:#B9B2A2}
.gal-dot[aria-current="true"]::after{background:var(--navy)}
.gal-live{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
@media (hover:none){ .gal-btn{width:38px; height:38px} }
@media (prefers-reduced-motion:reduce){ .gal-track{scroll-behavior:auto} }

/* Metals dropdown (click to open; JS adds .dd-ready so it still works as plain links without scripts) */
.nav-dd{ position:relative; }
.nav-dd-btn{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.nav-dd-btn:hover, .nav-dd.open .nav-dd-btn{ color:var(--navy); }
.nav-dd-btn::after{ content:""; width:6px; height:6px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .15s ease; }
.nav-dd.open .nav-dd-btn::after{ transform:rotate(-135deg) translateY(-2px); }
.nav-dd-btn:focus-visible{ outline:2px solid var(--brass); outline-offset:4px; }
.nav-dd-menu{ position:absolute; top:calc(100% + 16px); left:-18px; min-width:160px; background:var(--bone); border:1px solid var(--line); box-shadow:0 14px 24px rgba(27,36,48,.12); padding:8px 0; display:flex; flex-direction:column; z-index:60; }
.nav-dd-menu a{ padding:10px 20px; white-space:nowrap; }
.dd-ready .nav-dd-menu{ display:none; }
.dd-ready .nav-dd.open .nav-dd-menu{ display:flex; }
@media (max-width:900px){
  .nav-dd-btn{ width:100%; justify-content:space-between; padding:15px 4px; border-bottom:1px solid var(--line); font-size:20px; color:var(--navy); }
  .nav-dd-menu{ position:static; min-width:0; background:none; border:0; box-shadow:none; padding:0 0 0 14px; }
  .nav-dd-menu a{ padding:15px 4px; }
  .nav-dd-menu a:last-child{ border-bottom:1px solid var(--line); }
}

/* Click-to-call "Talk to us": phones/tablets only (a tel: link does nothing on a desktop) */
.nav-call{ display:none; }
@media (max-width:900px){
  .nav-call{ display:inline-flex; align-items:center; gap:7px; background:transparent; color:var(--navy); border:1.5px solid var(--navy); padding:8px 13px; border-radius:3px; font-size:17px; font-weight:600; text-decoration:none; white-space:nowrap; }
  .nav-call::before{ content:""; width:14px; height:14px; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat; }
}
@media (max-width:480px){ .nav-call{ padding:8px 10px; font-size:17px; gap:5px; } .nav-cta{ padding:9px 11px !important; font-size:17px !important; white-space:nowrap; } nav .wrap{ gap:6px; } }
@media (max-width:440px){ .brand-name{ display:none; } .brand{ margin-right:auto; } }
@media (max-width:340px){ .nav-call::before{ display:none; } nav .wrap{ padding:10px 10px !important; gap:4px !important; } .brand-mark{ width:36px; height:42px; } .nav-cta{ font-size:15px !important; padding:9px 9px !important; } .nav-call{ font-size:15px; padding:8px 8px; } .nav-toggle{ margin-left:0; } }

/* ---------- Homepage reviews band (spec: sentrybullion-homepage-testimonials-carousel-spec.md) ---------- */
.reviews{ background:linear-gradient(180deg,#1f3a63 0%,var(--navy,#1B2430) 100%); border-top:3px solid var(--brass,#B8935A); color:var(--bone,#F7F5F0); padding:92px 0 56px; }
.reviews .rv-title{ font-family:'Source Serif 4',serif; font-weight:500; font-size:clamp(30px,3.52vw,37px); text-align:center; margin:0 0 76px; }
.rv-track{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; transition:opacity .15s ease; }
.rv-track.rv-fading{ opacity:0; }
.rv{ position:relative; margin:0; padding:96px 28px 34px; text-align:center; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:6px; display:flex; flex-direction:column; align-items:center; }
.rv[hidden]{ display:none !important; }
.rv-photo{ position:absolute; top:-80px; left:50%; transform:translateX(-50%); width:160px; height:160px; border-radius:50%; object-fit:cover; border:4px solid var(--brass,#B8935A); box-shadow:0 6px 18px rgba(0,0,0,.35); background:#2a3b57; }
.rv-mono{ display:flex; align-items:center; justify-content:center; font-family:'Source Serif 4',serif; font-size:70px; color:var(--brass-bright,#D9AE57); }
.rv-head{ font-family:'Source Serif 4',serif; font-weight:500; font-size:25px; line-height:1.3; margin:0 0 14px; }
.rv-head + .rv-quote::before{ content:""; display:block; width:44px; height:2px; background:var(--brass,#B8935A); margin:0 auto 16px; }
.rv-quote{ margin:0 0 20px; font-size:21px; line-height:1.7; white-space:pre-line; color:#E6E9EE; }
.rv-by{ margin-top:auto; font-size:17px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--brass-bright,#D9AE57); }
.rv-controls{ display:flex; align-items:center; justify-content:center; gap:18px; margin:34px 0 8px; }
.rv-arrow{ background:none; border:1px solid rgba(255,255,255,.35); color:var(--bone,#F7F5F0); width:40px; height:40px; border-radius:50%; font-size:25px; line-height:1; cursor:pointer; }
.rv-arrow:hover{ border-color:var(--brass-bright,#D9AE57); }
.rv-dots{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.rv-dot{ width:10px; height:10px; padding:0; border-radius:50%; border:1px solid rgba(255,255,255,.5); background:transparent; cursor:pointer; }
.rv-dot[aria-current="true"]{ background:var(--brass-bright,#D9AE57); border-color:var(--brass-bright,#D9AE57); }
.rv-arrow:focus-visible,.rv-dot:focus-visible{ outline:2px solid var(--brass-bright,#D9AE57); outline-offset:3px; }
.rv-disclosure{ margin:30px auto 0; max-width:900px; text-align:center; font-size:17px; line-height:1.6; color:#AEB6C2; }
@media (max-width:999px){ .rv-track{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:699px){ .rv-track{ grid-template-columns:minmax(0,1fr); } .reviews{ padding:76px 0 44px; } .rv-quote{ font-size:20px; } }
@media (prefers-reduced-motion:reduce){ .rv-track{ transition:none; } .rv-track.rv-fading{ opacity:1; } }

/* ---------- Guide band: free-guide form with the two consent boxes (spec: sentrybullion-free-guide-cta-consent-a2p-spec.md) ---------- */
.guide-band{ background:#fff; border-top:1px solid var(--line); padding:64px 0; color:var(--navy); }
.guide-band .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:48px; align-items:start; }
.guide-band h2{ font-size:34px; line-height:1.15; margin:0 0 14px; }
.guide-band .gb-copy p{ font-size:20px; line-height:1.6; color:var(--slate); margin:0; }
.gb-fields{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:18px; }
.gb-field label{ display:block; font-size:17px; font-weight:600; margin-bottom:6px; }
.gb-field input{ width:100%; font-size:18px; padding:13px 14px; border:1px solid #B9B2A2; border-radius:4px; background:#fff; color:var(--navy); }
.gb-field input:focus-visible{ outline:2px solid var(--brass); outline-offset:1px; }
.gb-hp{ position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.gb-chk{ display:flex; gap:14px; align-items:flex-start; font-size:17px; line-height:1.55; color:var(--navy); margin:0 0 16px; cursor:pointer; }
.gb-chk input{ flex:0 0 26px; width:26px; height:26px; margin-top:3px; accent-color:var(--brass); }
.gb-chk a, .gb-note a{ color:var(--navy); text-decoration:underline; text-underline-offset:3px; }
.gb-terms{ margin-top:22px; padding-top:18px; border-top:1px solid rgba(0,0,0,.16); font-weight:600; }
.gb-note{ font-size:17px; line-height:1.55; color:var(--slate); margin:6px 0 18px; }
.gb-submit{ font-size:18px; padding:15px 30px; border:0; cursor:pointer; }
.gb-submit[disabled]{ opacity:.6; cursor:default; }
.gb-status{ font-size:18px; line-height:1.5; margin:14px 0 0; min-height:1.5em; }
.gb-status a{ color:var(--navy); text-decoration:underline; text-underline-offset:3px; font-weight:600; }
.gb-done h3{ font-size:26px; margin:0 0 10px; }
.gb-done p{ font-size:19px; line-height:1.6; color:var(--slate); margin:0 0 10px; }
@media (max-width:980px){ .guide-band .wrap{ grid-template-columns:1fr; gap:26px; } .gb-fields{ grid-template-columns:1fr; } }
@media (max-width:600px){ .guide-band{ padding:44px 0; } .guide-band .wrap{ padding:0 20px; } .guide-band h2{ font-size:30px; } }
