:root{--ink:#352519;--paper:#fffaf0;--orange:#f9b35f;--rust:#923b1c;--line:#dfd4c2;--mute:#76624f;--serif:Georgia,'Times New Roman',serif;--sans:'Trebuchet MS',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--sans)}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--rust)}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--rust);outline-offset:4px}h1,h2,h3,h4{font-family:var(--serif);font-weight:700;letter-spacing:-.045em;line-height:1.08;margin:0 0 1rem}h1{font-size:clamp(2.8rem,7vw,6.5rem)}h2{font-size:clamp(2.1rem,4vw,3.7rem)}h3{font-size:1.7rem}p{margin:0 0 1.2rem}.skip{position:absolute;top:-80px;padding:1rem;background:white;z-index:99}.skip:focus{top:0}.hero-wrap{padding:12px;background:var(--orange)}.hero{height:550px;max-height:70vh;min-height:430px;position:relative;overflow:hidden;border-radius:16px;background:#372218}.hero img{width:100%;height:100%;object-fit:cover;object-position:70% 52%;display:block}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,14,8,.68),rgba(25,14,8,.08) 80%)}.hero-copy{position:absolute;left:3.3%;top:6%;color:#ffcc85;z-index:1;max-width:600px}.hero-copy h1{font-size:clamp(3.3rem,7.5vw,7rem);line-height:.99;max-width:9ch;letter-spacing:-.06em}.eyebrow{font:700 .8rem/1.5 var(--sans);text-transform:uppercase;letter-spacing:.12em;display:block;margin-bottom:1.2rem}.hero-copy .eyebrow{color:#fff4da}.hero-bottom{position:absolute;bottom:26px;left:3.3%;z-index:1;color:white;font-size:.9rem;max-width:38ch}.nav{display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10;min-height:68px}.brand{font-family:var(--serif);font-size:1.65rem;letter-spacing:-.06em;font-weight:700;text-decoration:none;padding:15px 25px;white-space:nowrap;border-right:1px solid var(--line);display:flex;align-items:center}.brand span{color:var(--rust)}.navlinks{display:flex;align-items:center;gap:28px;padding:12px 26px;flex:1}.navlinks a,.nav-search{font-size:.875rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none}.nav-search{border-left:1px solid var(--line);padding:21px 26px;display:flex;align-items:center}.container{max-width:1440px;margin:auto;padding:0 40px}.intro{display:grid;grid-template-columns:1fr 300px;gap:8%;padding:55px 0;border-bottom:1px solid var(--line)}.intro h2{max-width:26ch;font-size:clamp(1.8rem,3vw,3rem);line-height:1.16}.intro h2 em{color:var(--rust);font-style:normal}.intro p{font-size:1rem;align-self:center;color:var(--mute)}.section{padding:64px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:34px}.section-heading h2{margin-bottom:0}.section-heading p{margin:0;max-width:40ch;color:var(--mute)}.textlink{font-size:.9rem;white-space:nowrap}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.card{display:block;text-decoration:none;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .18s}.card:hover{background:#f6e7cc}.card .eyebrow{margin-bottom:12px;color:var(--rust)}.card p{color:var(--mute);font-size:1rem;margin:0}.card strong{font:700 .83rem var(--sans);display:block;margin-top:25px;text-transform:uppercase;letter-spacing:.06em}.split{display:grid;grid-template-columns:1.6fr 1fr;background:var(--orange);border-radius:14px;overflow:hidden}.split>div{padding:45px}.split h2{font-size:clamp(2rem,4vw,4.3rem)}.split .aside{background:#412c20;color:var(--paper);display:flex;flex-direction:column;justify-content:center}.split .aside p{color:#e9d6bc}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:4px;padding:12px 20px;text-decoration:none;font-size:.95rem;font-weight:700;min-height:48px}.button:hover{background:var(--rust);color:white}.stats{display:flex;gap:26px;flex-wrap:wrap;margin-top:25px}.stat b{font:700 2rem var(--serif);display:block}.stat span{font-size:.83rem}.footer{background:var(--ink);color:var(--paper);padding:55px 40px 30px;margin-top:50px}.footer-inner{max-width:1360px;margin:auto}.footer-top{display:flex;justify-content:space-between;gap:40px;align-items:start}.footer h2{font-size:3rem;max-width:12ch;color:var(--orange)}.footer-links{display:flex;gap:25px;flex-wrap:wrap;max-width:600px}.footer-links a{font-size:.9rem;color:#fff5dd}.fine{font-size:.8rem;color:var(--mute)}.footer .fine{color:#d6c2a8;margin:30px 0 0;border-top:1px solid #69523d;padding-top:20px}.breadcrumbs{display:flex;gap:8px;flex-wrap:wrap;list-style:none;padding:20px 0;margin:0;font-size:.83rem;color:var(--mute)}.page-head{padding:45px 0 55px;border-bottom:1px solid var(--line);max-width:1100px}.page-head h1{max-width:17ch;font-size:clamp(2.7rem,5.6vw,5.5rem)}.page-head .dek{font-size:1.2rem;max-width:70ch;color:var(--mute)}.page-meta{display:flex;flex-wrap:wrap;gap:15px;font-size:.83rem;color:var(--mute)}.article-layout{display:grid;grid-template-columns:minmax(0,850px) minmax(220px,320px);gap:7%;align-items:start;padding-top:45px}.article h2{font-size:2.3rem;margin-top:45px}.article h2:first-child{margin-top:0}.article h3{font-size:1.85rem}.article p{font-size:1.05rem}.sidebar{padding:24px;background:#f4ebdb;border:1px solid var(--line);border-radius:6px;position:sticky;top:92px}.sidebar h2{font-size:1.5rem;letter-spacing:-.025em}.sidebar ul{padding-left:20px;font-size:.95rem}.sidebar li{margin:9px 0}.venue{border-top:2px solid var(--ink);padding:24px 0 30px;scroll-margin-top:100px}.venue-head{display:flex;align-items:start;justify-content:space-between;gap:20px}.badge{font-size:.875rem;border:1px solid var(--line);padding:5px 8px;white-space:nowrap;color:var(--rust);background:#f6ead8;border-radius:3px}.venue .evidence{font-size:.9rem;padding:16px;background:#f4ebdb;border-left:3px solid var(--rust)}.venue .caveat{font-size:.9rem;color:var(--mute)}.venue-actions{display:flex;gap:22px;flex-wrap:wrap;font-size:.88rem}.callout{padding:24px;background:#f8deb5;border-radius:5px;margin:25px 0}.callout h3{font-size:1.5rem}.city-list{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-right:0;border-bottom:0}.city-list .card{padding:23px}.city-list h3{font-size:1.5rem}.factrow{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-bottom:1px solid var(--line);padding:25px 0}.factrow dt{font-size:.77rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}.factrow dd{margin:5px 0 0;font-weight:700}.filters{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:25px 0}.filters label{display:flex;flex-direction:column;font-size:.875rem;font-weight:700;gap:6px;flex:1}.filters input,.filters select{border:1px solid var(--ink);background:white;padding:12px;min-height:48px;border-radius:4px;color:var(--ink);max-width:100%}.result-count{font-size:.9rem;color:var(--mute);margin:10px 0 20px}.searchresults{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.searchresult{border:1px solid var(--line);padding:25px;text-decoration:none}.searchresult h2{font-size:1.65rem}.searchresult p{margin:0;font-size:.9rem;color:var(--mute)}details{border-bottom:1px solid var(--line);padding:19px 0}summary{font-weight:700;cursor:pointer;font-size:1.05rem}details p{padding-top:14px}.toc{padding-left:20px}.toc li{margin:9px 0}.directory-row{display:grid;grid-template-columns:160px 1fr 230px;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}.directory-row h3{font-size:1.4rem;margin:0}.directory-row p{margin:0;color:var(--mute);font-size:.95rem}.directory-row .citylinks{font-size:.85rem}.pullquote{font:700 clamp(1.8rem,3.5vw,3rem)/1.2 var(--serif);color:var(--rust);padding:30px 0}.article table{border-collapse:collapse;width:100%;font-size:.95rem}.article th,.article td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.article th{background:#f4ebdb}section[id],h2[id]{scroll-margin-top:100px}[hidden]{display:none!important}@media(min-width:1700px){.hero{height:650px}}@media(max-width:900px){.container{padding:0 24px}.intro{grid-template-columns:1fr;gap:15px}.intro p{max-width:65ch}.navlinks{gap:16px;padding:10px 15px}.brand{padding:15px}.nav-search{padding:18px 15px}.grid{grid-template-columns:repeat(2,1fr)}.article-layout{grid-template-columns:1fr;gap:30px}.sidebar{position:static;order:-1}.sidebar ul{display:flex;flex-wrap:wrap;gap:8px 28px}.split{grid-template-columns:1fr}.split .aside{padding:30px 40px}.directory-row{grid-template-columns:140px 1fr}.directory-row .citylinks{grid-column:2}.footer-top{flex-direction:column}}@media(max-width:620px){.hero-wrap{padding:8px}.hero{min-height:465px;height:63vh;max-height:560px;border-radius:10px}.hero img{object-position:63% center}.hero-copy{left:6%;top:8%}.hero-copy h1{font-size:4.3rem;max-width:8ch}.hero-bottom{left:6%;max-width:32ch}.nav{flex-wrap:wrap;position:relative}.brand{flex:1;border-right:0;padding:12px 18px}.nav-search{border-left:1px solid var(--line);padding:12px 18px}.navlinks{order:3;width:100%;border-top:1px solid var(--line);justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 18px}.navlinks a{font-size:.875rem}.container{padding:0 20px}.intro{padding:35px 0}.section{padding:40px 0}.section-heading{align-items:start;flex-direction:column;gap:12px;margin-bottom:24px}.grid,.city-list,.searchresults{grid-template-columns:1fr}.card{padding:26px}.split>div{padding:30px}.split .aside{padding:30px}.footer{padding:40px 20px}.footer-links{gap:16px}.page-head{padding:25px 0 35px}.page-head h1{font-size:3rem}.page-head .dek{font-size:1.08rem}.article-layout{padding-top:28px}.venue-head{flex-direction:column;gap:0}.badge{margin-bottom:15px}.factrow{grid-template-columns:1fr}.factrow>div{border-bottom:1px solid var(--line);padding-bottom:15px}.directory-row{grid-template-columns:1fr;gap:8px}.directory-row .citylinks{grid-column:auto}.filters{flex-direction:column;align-items:stretch}.article table{font-size:.85rem}.article td,.article th{padding:9px 6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}
/* National editorial list and individual chocolate profiles. */
.ranking-home-dek{max-width:70ch;color:var(--mute);font-size:1.05rem}.rank-tiles{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line);margin:24px 0}.rank-tile{display:grid;grid-template-columns:60px minmax(0,1fr);gap:20px;padding:25px 18px 25px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .18s}.rank-tile:hover{background:#f6e7cc}.rank-tile-number{font:700 3rem/1 var(--serif);letter-spacing:-.07em;color:var(--rust)}.rank-tile .eyebrow{margin-bottom:10px}.rank-tile h3{font-size:1.5rem;letter-spacing:-.035em;margin-bottom:12px}.rank-tile p{font-size:.95rem;color:var(--mute);margin-bottom:12px}.rank-tile strong{font-size:.875rem}.home-picks{grid-template-columns:repeat(3,minmax(0,1fr))}.home-picks .rank-tile{padding:25px 20px;gap:16px;border-right:1px solid var(--line)}.home-picks .rank-tile:first-child{border-left:1px solid var(--line)}.ranking-intro{max-width:880px;padding:35px 0 0;font-size:1.05rem}.rank-jumps{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.rank-jumps a{border:1px solid var(--ink);border-radius:3px;padding:8px 12px;font-size:.9rem;text-decoration:none;min-height:44px}.rank-jumps a:hover{background:var(--orange)}.ranking-layout{padding-top:35px}.rank-entry{display:grid;grid-template-columns:76px minmax(0,1fr);gap:25px;padding:36px 0;border-top:2px solid var(--ink);scroll-margin-top:100px}.rank-number{font:700 4rem/1 var(--serif);letter-spacing:-.08em;color:var(--rust)}.rank-entry .eyebrow{margin:0 0 14px}.article .rank-entry h2{font-size:2.1rem;line-height:1.15;letter-spacing:-.035em;margin:0 0 20px}.rank-entry h2 a{text-decoration:none}.rank-entry h2 a:hover{text-decoration:underline}.rank-entry p{margin-bottom:20px}.rank-entry .rank-order{font-size:.95rem;color:var(--mute)}.rank-entry .venue-actions a{font-size:.9rem}.ranking-method{margin-top:50px;border-top:1px solid var(--line);padding-top:35px}.ranking-method h3{margin-top:30px}.source-note{border-left:3px solid var(--rust);background:#f4ebdb;padding:22px;margin:24px 0}.source-note .badge{display:inline-block;margin-bottom:20px;white-space:normal}.source-note p{font-size:.95rem}.source-list{padding-left:22px}.source-list li{margin-bottom:22px}.source-list li p{font-size:.9rem;color:var(--mute);margin-top:7px}.rank-pagination{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;border-top:2px solid var(--ink);padding-top:22px;margin-top:36px}.rank-pagination a{font-family:var(--serif);font-size:1.2rem;line-height:1.3}.rank-pagination span{display:block;font:700 .8rem/1.5 var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--rust);margin-bottom:10px}.local-ranking{margin-top:40px}.local-ranking .rank-tile h3{font-size:1.55rem}
@media(max-width:1050px){.nav{flex-wrap:wrap}.brand{flex:1;border-right:0}.navlinks{order:3;flex-basis:100%;border-top:1px solid var(--line);justify-content:space-between;flex-wrap:wrap}.nav-search{padding-top:15px;padding-bottom:15px}}
@media(max-width:900px){.home-picks{grid-template-columns:1fr}.home-picks .rank-tile{border-left:1px solid var(--line)}.rank-entry{grid-template-columns:65px minmax(0,1fr);gap:22px}}
@media(max-width:620px){.rank-entry{grid-template-columns:43px minmax(0,1fr);gap:16px;padding:28px 0}.rank-number{font-size:2.8rem}.article .rank-entry h2{font-size:1.7rem}.rank-entry .eyebrow{font-size:.8rem;letter-spacing:.07em}.rank-entry .venue-actions{gap:14px}.rank-tile{grid-template-columns:45px minmax(0,1fr);gap:16px}.rank-tile-number{font-size:2.5rem}.rank-pagination{grid-template-columns:1fr}.ranking-intro{padding-top:25px}.rank-jumps{gap:8px}.ranking-method h3{font-size:1.6rem}}
@media(prefers-reduced-motion:reduce){.rank-tile{transition:none}}
@media(min-width:901px) and (max-width:1100px){.ranking-layout{grid-template-columns:minmax(0,1fr) 260px;gap:5%}}
@media(max-width:1050px){.sidebar{top:145px}.rank-entry,.venue,section[id],h2[id]{scroll-margin-top:150px}}
@media(max-width:620px){.rank-entry,.venue,section[id],h2[id]{scroll-margin-top:24px}}
@media(max-width:900px){.ranking-layout>.sidebar{display:none}}
