/* Glacier Rock Vineyard · Wine Ratings (/ratings/)
   Loaded after site.css on the app's pages only. It uses site.css's tokens
   (--bg, --ink, --accent, --rule …) and components (.wrap, .rf, .ledger,
   .field, .btn …), so both themes work: dark navy by default, parchment
   with <html data-theme="light">. Everything of its own is named r-…. */

/* ---------- the shared menu, without inline styles (the CSP allows none) ---------- */
.menu-top img{height:40px;width:auto}
.menu-top .menu-btn{display:inline-flex}

/* the star drawing every rating uses (one <symbol> per page) */
.r-defs{position:absolute;width:0;height:0;overflow:hidden}
.r-offscreen{position:fixed;left:-9999px;top:0;opacity:0}

/* a tighter footer gap: the Wine Ratings line sits just above it */
.ft{margin-top:56px}

/* ---------- the Wine Ratings bar, under the site header ---------- */
.r-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 28px;padding:14px 0;border-bottom:1px solid var(--rule-soft)}
.r-bar a,.r-bar .r-linkish{font-variant-caps:all-small-caps;letter-spacing:.18em;font-size:18px;color:var(--ink);text-decoration:none}
.r-bar a:hover,.r-bar .r-linkish:hover{color:var(--accent)}
.r-bar a[aria-current="page"]{color:var(--accent);text-decoration:underline;text-underline-offset:.4em}
.r-bar .r-bar-home{color:var(--accent);font-size:19px}
.r-bar-links{display:flex;flex-wrap:wrap;align-items:center;gap:2px 24px}
.r-bar .r-bar-join{color:var(--accent)}
.r-flash{margin-top:18px}

/* ---------- small pieces ---------- */
.r-inline{display:inline;margin:0}
.r-linkish{background:none;border:0;padding:0;margin:0;font:inherit;color:var(--link);cursor:pointer;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
.r-linkish:hover{color:var(--ink)}
.r-tag{display:inline-block;margin-left:4px;padding:0 8px;border:1px solid var(--col-rule);font-family:var(--text);font-style:normal;font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:15px;line-height:1.5;color:var(--accent);vertical-align:2px;white-space:nowrap}
.r-tag--warn{color:var(--bad);border-color:var(--bad)}
.r-empty{font-style:italic;color:var(--ink-2)}
.r-hint{margin-top:6px;font-style:italic;font-size:16px;line-height:1.45;color:var(--ink-3)}
.r-opt{font-variant-caps:normal;letter-spacing:0;font-style:italic;font-size:17px;color:var(--ink-3)}
.r-fine{margin-top:14px;font-style:italic;font-size:16px;color:var(--ink-3)}
.r-switch{margin-top:22px}
.r-cta{margin-top:28px}
.r-count-line{margin-bottom:12px}
.r-stat{margin-top:24px}
.r-h2{margin-top:44px;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(28px,2.8vw,34px);line-height:1.2;color:var(--ink)}
.r-danger{color:var(--bad)}
.r-quote{margin:22px 0 0;padding-left:22px;border-left:2px solid var(--wl);font-family:var(--display);font-style:italic;font-weight:500;font-size:24px;line-height:1.35;color:var(--ink-2);white-space:pre-line}
.r-hidden-note{display:inline-block;margin-top:10px;padding:0 10px;border:1px solid var(--bad);font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:15px;color:var(--bad)}
.is-hidden{opacity:.72}
.r-btn-sm{min-height:42px;padding:0 18px;font-size:18px}
.r-btn-danger{background:transparent;color:var(--bad);border-color:var(--bad)}
.r-btn-danger:hover{background:var(--bad);border-color:var(--bad);color:var(--bg)}
.r-toast{position:fixed;left:50%;bottom:28px;z-index:120;transform:translateX(-50%);margin:0;padding:10px 22px;background:var(--btn-bg);color:var(--btn-ink);font-variant-caps:all-small-caps;letter-spacing:.16em;font-size:18px;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.r-toast[hidden]{display:none}

/* headings that may need two lines (a country's or a member's name, a question) */
.rf.r-wrap .t{white-space:normal;overflow-wrap:anywhere;text-wrap:balance}

/* columns for forms and short pages, still lined up with the header */
.r-narrow>:not(.rf):not(.crumbs){max-width:640px}
.r-mid>:not(.rf):not(.crumbs){max-width:880px}

/* ---------- stars ---------- */
.stars{display:inline-flex;align-items:center;vertical-align:middle;line-height:0}
.stars svg{width:100px;height:20px}
.stars--lg svg{width:120px;height:24px}
.stars--xl svg{width:170px;height:34px}
.st-off{fill:var(--rule-soft)}
.st-on{fill:var(--accent)}
.r-avg{font-family:var(--display);font-weight:600;font-size:22px;line-height:1;color:var(--ink)}
.r-count{font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:16px;color:var(--ink-3);white-space:nowrap}

/* ---------- search ---------- */
.r-search{display:flex;flex-wrap:wrap;gap:12px;max-width:760px;margin-top:clamp(28px,3vw,40px)}
.r-search input[type="search"],.r-search input[type="text"]{flex:1 1 280px;min-width:0;min-height:52px;padding:12px 16px;border:1px solid var(--field-line);border-radius:0;background:var(--field-bg);color:var(--ink);font:inherit;font-size:20px}
.r-search input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.r-search input::placeholder{color:var(--ink-3);opacity:1}
.r-search label:not(.vh){flex:1 1 100%;font-variant-caps:all-small-caps;letter-spacing:.18em;font-size:18px;color:var(--ink-2)}
.r-search label b{font-weight:400;color:var(--accent)}
.r-search--sm{max-width:640px;margin-top:20px}
.r-search--sm input[type="search"],.r-search--sm input[type="text"]{min-height:46px;font-size:19px}
.r-search--sm .btn{min-height:46px}

/* ---------- lists of wines (like the Journal's list: dotted leaders) ---------- */
.r-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.r-row{border-bottom:1px solid var(--rule-soft)}
.r-row a{display:flex;align-items:center;gap:16px;padding:18px 0;text-decoration:none;color:var(--ink)}
.r-row a:hover .r-row-t{color:var(--accent)}
.r-row-l{min-width:0}
.r-row-c{display:block;font-variant-caps:all-small-caps;letter-spacing:.18em;font-size:17px;color:var(--accent)}
.r-row-c .r-tag{vertical-align:1px}
.r-row-t{display:block;font-family:var(--display);font-weight:500;font-size:clamp(24px,2.4vw,30px);line-height:1.2;overflow-wrap:anywhere}
.r-row-s{display:block;margin-top:4px;font-style:italic;font-size:18px;line-height:1.45;color:var(--ink-2)}
.r-row-d{flex:1 1 20px;min-width:20px;border-bottom:1px dotted var(--dots)}
.r-row-m{display:flex;align-items:center;gap:10px;white-space:nowrap}
.r-list--plain .r-row a{padding:14px 0}

/* ratings in a list (home, a member's page) */
.r-erows{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.r-erow{padding:18px 0 20px;border-bottom:1px solid var(--rule-soft)}
.r-erow-t a{font-family:var(--display);font-weight:500;font-size:clamp(24px,2.4vw,28px);line-height:1.2;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.r-erow-t a:hover{color:var(--accent)}
.r-erow-m{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:6px;font-style:italic;font-size:17px;color:var(--ink-3)}
.r-erow-m a{color:var(--ink-2)}
.r-erow-s{margin-top:8px;max-width:820px;color:var(--ink-2)}
.r-erow-p{margin-top:6px;font-size:18px;color:var(--ink-2)}
.r-k{margin-right:8px;font-style:normal;font-variant-caps:all-small-caps;letter-spacing:.16em;font-size:16px;color:var(--accent)}

/* a grid of countries or styles */
.r-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));column-gap:40px;border-top:1px solid var(--rule)}
.r-grid a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:var(--ink)}
.r-grid a:hover .r-grid-t{color:var(--accent)}
.r-grid-t{font-family:var(--display);font-weight:600;font-size:24px;line-height:1.2}
.r-grid-n{font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:16px;color:var(--ink-3);white-space:nowrap}

/* ---------- from our cellar (in the dark band) ---------- */
.r-cellar{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px 56px}
.r-cellar-wine{padding-top:28px;border-top:1px solid var(--col-rule)}
.r-cellar-wine h3{margin-top:4px;font-weight:500;font-size:clamp(30px,3vw,36px)}
.r-cellar-score{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;font-style:italic;color:var(--ink-2)}
.r-cellar-links{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:16px}

/* ---------- a wine's page ---------- */
.r-wine-head .sc{margin-bottom:6px}
.r-title{font-family:var(--display);font-weight:500;font-size:clamp(40px,5.4vw,72px);line-height:1.04;letter-spacing:.01em;color:var(--ink);text-wrap:balance;overflow-wrap:anywhere}
.r-title-p,.r-title-n{display:block}
.r-title-n{margin-top:.12em;font-style:italic;font-size:.62em;line-height:1.15;color:var(--ink-2)}
.r-wl{display:block;width:min(220px,40%);height:2px;margin-top:26px;background:var(--wl)}
.r-house{margin-top:18px;font-style:italic;color:var(--ink-2)}
.r-house .r-tag{margin:0 8px 0 0}
.r-wine-top{display:flex;flex-wrap:wrap;gap:40px 72px;align-items:flex-start;margin-top:clamp(36px,4vw,52px)}
.r-score{flex:1 1 320px;min-width:0}
.r-score-line{margin-top:14px;font-size:21px;color:var(--ink-2)}
.r-score-line strong{display:block;margin-bottom:4px;font-family:var(--display);font-weight:300;font-size:clamp(64px,7vw,96px);line-height:1;color:var(--ink)}
.r-score-none{font-style:italic}
.r-score .btns{margin-top:24px}
.r-facts{flex:1.3 1 420px;min-width:0}
.r-facts .ledger-row .k{flex:0 0 auto}
.r-facts .ledger-row .v{white-space:normal;text-align:right;font-size:24px;line-height:1.25;overflow-wrap:anywhere}
.r-facts .ledger-row .v a{color:var(--ink);text-decoration-color:var(--col-rule)}
.r-facts .ledger-row .v a:hover{color:var(--accent)}
.r-facts--member{max-width:640px}
.r-admin-links{margin-top:28px;color:var(--ink-3)}
.r-wine-mini{margin-top:18px}
.r-wine-mini a{display:block;font-family:var(--display);font-weight:500;font-size:clamp(26px,2.6vw,32px);line-height:1.2;color:var(--ink);text-decoration:none}
.r-wine-mini a:hover{color:var(--accent)}
.r-wine-mini span{display:block;margin-top:4px;font-variant-caps:all-small-caps;letter-spacing:.16em;font-size:17px;color:var(--ink-3)}

/* averages by experience level and by country */
.r-avgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:40px 64px}
.r-avg-h{margin-bottom:12px}
.r-avg-ledger .ledger-row{align-items:center}
.r-avg-ledger .ledger-row+.ledger-row{margin-top:10px}
.r-avg-ledger .k{flex:0 1 auto;min-width:0;line-height:1.3}
.r-avg-ledger .k a{color:var(--ink);text-decoration:none}
.r-avg-ledger .k a:hover{color:var(--accent);text-decoration:underline}
.r-avg-ledger .d{transform:none}
/* fixed widths, so the stars and counts line up from row to row */
.r-avg-ledger .v{flex:0 0 150px;display:inline-flex;align-items:center;gap:10px;font-size:22px}
.r-n{flex:0 0 5.6em;text-align:right;font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:16px;color:var(--ink-3);white-space:nowrap}

/* the ratings, with filters */
.r-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 24px;margin-bottom:28px}
.r-filters .field{flex:0 1 260px;min-width:200px}
.r-filters .btn{min-height:50px}
.r-filters .go{align-self:center}
.r-entries{border-top:1px solid var(--rule)}
.r-entry{padding:28px 0;border-bottom:1px solid var(--rule-soft)}
.r-entry-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.r-entry-who{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}
.r-who{font-family:var(--display);font-weight:600;font-size:25px;line-height:1.2;color:var(--ink);text-decoration:none}
.r-who:hover{color:var(--accent)}
.r-entry-as{font-variant-caps:all-small-caps;letter-spacing:.16em;font-size:17px;color:var(--ink-3)}
.r-note{margin-top:14px;max-width:780px;white-space:pre-line;overflow-wrap:anywhere}
.r-paired{margin-top:12px;max-width:780px;font-style:italic;color:var(--ink-2);overflow-wrap:anywhere}
.r-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;margin-top:14px;font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:16px;color:var(--ink-3)}
.r-meta a,.r-meta .r-linkish{color:var(--ink-3);text-decoration:none;font-variant-caps:all-small-caps;letter-spacing:.14em}
.r-meta a:hover,.r-meta .r-linkish:hover{color:var(--accent)}
.r-mod{display:inline-flex;gap:16px;padding-left:16px;border-left:1px solid var(--rule-soft)}
.r-edited{font-style:italic;font-variant-caps:normal;letter-spacing:0}
.r-comments{margin-top:16px;padding-left:20px;border-left:1px solid var(--col-rule)}
.r-comment-list{list-style:none;padding:0;margin:0}
.r-comment{padding:10px 0}
.r-comment+.r-comment{border-top:1px solid var(--rule-soft)}
.r-comment-head{display:flex;flex-wrap:wrap;gap:4px 14px;font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:16px;color:var(--ink-3)}
.r-comment-head a{font-family:var(--display);font-weight:600;font-size:20px;font-variant-caps:normal;letter-spacing:0;color:var(--ink);text-decoration:none}
.r-comment-head a:hover{color:var(--accent)}
.r-comment .r-note{margin-top:4px;font-size:19px}
.r-comment .r-meta{margin-top:6px}
.r-add-comment{margin-top:10px}
.r-add-comment summary{cursor:pointer;font-variant-caps:all-small-caps;letter-spacing:.16em;font-size:17px;color:var(--accent)}
.r-add-comment form{margin-top:12px;max-width:640px}
.r-add-comment textarea{min-height:110px}
.r-add-comment .btn{margin-top:12px}

.r-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;font-size:18px}
.r-pager a{text-decoration:none}

/* ---------- forms ---------- */
.r-form{margin-top:clamp(28px,3vw,40px)}
.r-form>*+*{margin-top:22px}
.r-form .btns,.r-form-grid .btns{margin-top:8px}
.r-form-grid{margin-top:clamp(24px,3vw,36px)}
.r-form-grid .btns{margin-top:0}
.r-pw{display:flex;gap:8px;align-items:stretch}
.r-pw input{flex:1 1 auto;min-width:0}
.r-pw-toggle{flex:0 0 auto;margin-top:6px;min-height:50px;padding:0 16px;border:1px solid var(--field-line);background:none;color:var(--ink);cursor:pointer;font-variant-caps:all-small-caps;letter-spacing:.16em;font-size:17px}
.r-pw-toggle:hover{border-color:var(--accent);color:var(--accent)}
.r-pw-toggle[hidden]{display:none}
.field.field-f.bad .check label{color:var(--ink)}
.r-choices{border:0;padding:0;margin:0}
.r-choices .check{margin-top:12px}
.r-choices legend{padding:0}
fieldset.field{border:0;padding:0;margin:0;min-width:0}
fieldset.field legend{padding:0}

/* the star rating: five radio buttons, drawn as stars */
.r-star-input{position:relative;display:flex;flex-wrap:wrap;gap:2px;margin-top:8px}
/* hidden, but still the real control: more specific than site.css's .field input */
.field .r-star-input .r-star-radio{position:absolute;left:0;top:0;opacity:0;width:1px;height:1px;min-height:0;margin:0;padding:0;border:0}
.r-star-input .r-star{display:inline-flex;padding:4px;cursor:pointer;color:var(--rule-soft);font-variant-caps:normal;letter-spacing:0}
.r-star svg{width:42px;height:42px;fill:currentColor;transition:transform .15s}
.r-star:hover svg{transform:scale(1.08)}
/* The chosen star and every star before it are filled. */
.r-star-input:has(.r-star-radio:checked) .r-star{color:var(--accent)}
.r-star-input .r-star-radio:checked~.r-star{color:var(--rule-soft)}
.r-star-input .r-star-radio:checked+.r-star{color:var(--accent)}
.r-star-radio:focus-visible+.r-star{outline:2px solid var(--accent);outline-offset:2px}

/* "That wine is already here", "Is it one of these?" */
.r-exists p+p{margin-top:10px}
.r-exists-go{display:flex;flex-wrap:wrap;gap:8px 28px;font-style:normal}
.r-matches{list-style:none;padding:0;margin:24px 0 0;border-top:1px solid var(--rule)}
.r-matches li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:16px 0;border-bottom:1px solid var(--rule-soft)}
.r-matches li>p{flex:1 1 100%}
.r-match-t a{font-family:var(--display);font-weight:500;font-size:clamp(24px,2.4vw,28px);line-height:1.2;color:var(--ink);text-decoration:none}
.r-match-t a:hover{color:var(--accent)}
.r-match-m{margin-top:-4px;font-style:italic;font-size:17px;color:var(--ink-3)}

/* ---------- admin ---------- */
.r-tabs{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:clamp(28px,3vw,40px);border-bottom:1px solid var(--rule)}
.r-tabs a{padding:10px 0;font-variant-caps:all-small-caps;letter-spacing:.18em;font-size:19px;color:var(--ink);text-decoration:none}
.r-tabs a:hover,.r-tabs a[aria-current="page"]{color:var(--accent)}
.r-tabs a[aria-current="page"]{text-decoration:underline;text-underline-offset:.4em}
.r-badge{display:inline-block;min-width:1.5em;padding:0 6px;border-radius:999px;background:var(--bad);color:var(--bg);font-variant-caps:normal;letter-spacing:0;font-size:14px;line-height:1.5;text-align:center}
.r-table-wrap{margin-top:20px;overflow-x:auto;border-top:1px solid var(--rule)}
.r-table{width:100%;border-collapse:collapse;font-size:17px;line-height:1.45}
.r-table th{padding:10px 12px;border-bottom:1px solid var(--rule);text-align:left;font-weight:400;font-variant-caps:all-small-caps;letter-spacing:.14em;font-size:16px;color:var(--ink-3);white-space:nowrap}
.r-table td{padding:10px 12px;border-bottom:1px solid var(--rule-soft);vertical-align:top}
.r-table tr.is-hidden td{opacity:.72}
.r-admin-text{min-width:15em;overflow-wrap:anywhere}
.r-admin-actions{white-space:nowrap}
.r-admin-actions>*+*{margin-left:12px}

/* ---------- terms and privacy ---------- */
.prose.r-legal{margin-left:0;margin-right:0}
.prose.r-legal>p:first-of-type::first-letter{float:none;font:inherit;padding:0;color:inherit}
.r-legal h2{font-size:clamp(26px,2.6vw,32px)}
.r-draft{padding:10px 16px;border:1px dashed var(--accent);font-style:italic;color:var(--accent)}

/* the Wine Ratings line above the footer */
.r-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 24px;margin-top:var(--gap);padding-top:18px;border-top:1px solid var(--rule-soft);font-variant-caps:all-small-caps;letter-spacing:.16em;font-size:16px;color:var(--ink-3)}
.r-foot a{color:var(--ink-3);text-decoration:none}
.r-foot a:hover{color:var(--accent)}
.r-foot span{margin-right:auto}

/* ---------- phones ---------- */
@media (max-width:600px){
  .r-bar{gap:4px 20px}
  .r-bar-links{gap:0 18px}
  .r-bar a,.r-bar .r-linkish{font-size:17px}
  .r-row a{flex-wrap:wrap;gap:6px 12px;padding:16px 0}
  .r-row-l{flex:1 1 100%}
  .r-row-d{display:none}
  .r-list--plain .r-row a{flex-wrap:nowrap}
  .r-list--plain .r-row-l{flex:1 1 auto}
  .r-list--plain .r-row-m{white-space:normal;text-align:right}
  .r-grid{grid-template-columns:1fr}
  .r-avg-ledger .d{display:none}
  .r-avg-ledger .k{flex:1 1 auto}
  .r-avg-ledger .stars svg{width:80px;height:16px}
  .r-avg-ledger .v{flex-basis:116px;font-size:20px;gap:8px}
  .r-n{flex-basis:4.9em}
  .r-filters .field{flex:1 1 100%}
  .r-facts .ledger-row .v{font-size:21px}
  .r-star svg{width:46px;height:46px}
  .r-mod{padding-left:0;border-left:0}
  .r-comments{padding-left:14px}
  .r-foot span{flex:1 1 100%}
}
