@font-face{font-family:CoastalDisplay;src:url('../fonts/coastal-display.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:CoastalScript;src:url('../fonts/coastal-script.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:light}*{box-sizing:border-box}
body{margin:0;padding:12px;background:#fff;color:#111}
.coastal-sheet{position:relative;isolation:isolate;display:flow-root;width:100%;max-width:1040px;margin:0 auto;padding:18px 18% 24px;border:4px double #111;border-radius:14px;background:#fff;font:17px/1.2 Arial,Helvetica,sans-serif}
.coastal-header{text-align:center;margin:0 0 10px}
.coastal-title{display:inline-block;margin:0;padding:0 10px 4px;border-bottom:2px solid #111;font:700 27px/1.05 CoastalDisplay,'Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.025em}
#specials-content{display:flow-root;padding:0}
.menu-date{text-align:center;font:700 28px/1.1 CoastalDisplay,'Arial Narrow',sans-serif;text-transform:uppercase;border-bottom:1px solid #111;padding:3px 8px 7px;margin:0 0 14px}
.coastal-callouts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:2px solid #111;border-bottom:2px solid #111;margin:0 0 18px}
.coastal-callouts[data-count="1"]{grid-template-columns:1fr}
.coastal-callout{min-width:0;padding:9px 10px 10px;text-align:center}
.coastal-callout+ .coastal-callout{border-left:1px solid #111}
.coastal-callout .section-heading{display:block;margin:0 0 5px;border:0;outline:0;padding:0;background:none;color:#111;font:700 18px/1.15 CoastalDisplay,'Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.01em}
.coastal-callout .section-heading::before,.coastal-callout .section-heading::after{display:none}
.coastal-callout .section-heading>.coastal-section-label{display:inline-block;max-width:100%;margin:0 auto;padding:4px 14px 5px;font-size:clamp(20px,2.3vw,26px);line-height:1.1;text-transform:uppercase}
.coastal-callout article{border:0;padding:0}
.coastal-callout article+article{padding-top:9px}
.coastal-callout h3{display:block;font:600 clamp(26px,3.1vw,34px)/1.12 Helvetica,Arial,sans-serif}
.coastal-callout h3>span:first-child{text-transform:none}
.coastal-callout .price{display:block;font:700 17px/1.2 Arial,sans-serif;text-align:center;margin-top:3px;max-width:none}
.coastal-callout article p{margin:5px 0 0;font:italic 16px/1.2 Georgia,serif}
.section-heading{display:flex;align-items:center;gap:12px;width:100%;font:700 30px/1.05 CoastalDisplay,'Arial Narrow',sans-serif;text-transform:uppercase;margin:17px 0 9px;letter-spacing:.025em}
.section-heading::before,.section-heading::after{content:'';flex:1;min-width:12px;height:4px;border-top:1px solid #111;border-bottom:1px solid #111}
.coastal-section-label{display:block;max-width:78%;padding:4px 20px 5px;background:#111;color:#fff;border:3px double #fff;outline:1px solid #111;text-align:center;clip-path:polygon(4% 0,96% 0,100% 18%,100% 82%,96% 100%,4% 100%,0 82%,0 18%)}
article{margin:0;padding:0 0 7px;border-bottom:1px dotted #b1b1b1}article+article{padding-top:6px}
h3{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px;margin:0;font-size:17px;font-weight:800;line-height:1.15}
h3>span:first-child{text-transform:uppercase}.price{font-size:17px;font-weight:800;white-space:pre-wrap;text-align:right;max-width:200px}
article p{margin:2px 0 0 6px;font:italic 17px/1.17 Georgia,'Times New Roman',serif}article span,p,li{overflow-wrap:anywhere}
.event-description,.event-choices li{white-space:pre-wrap}.event-choices{padding-left:24px;font:italic 17px/1.25 Georgia,serif}
.coastal-footer{margin:17px 0 0;padding:7px 0 0;border-top:2px solid #111;text-align:center;font:700 16px/1.2 CoastalDisplay,'Arial Narrow',sans-serif;text-transform:uppercase}
#specials-content>p:only-child{font:20px/1.5 Georgia,serif;padding:20px 8px;text-align:center}
.coastal-side{position:absolute;top:18px;bottom:20px;width:16%;display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:8px;z-index:-1;pointer-events:none}
.coastal-side-left{left:1%}.coastal-side-right{right:1%}
.coastal-motif{width:100%;aspect-ratio:1;background-size:contain;background-repeat:no-repeat;background-position:center}
.coastal-side-left .coastal-motif-top{background-image:var(--coastal-left-top)}.coastal-side-left .coastal-motif-middle{background-image:var(--coastal-left-middle)}.coastal-side-left .coastal-motif-bottom{background-image:var(--coastal-left-bottom)}
.coastal-side-right .coastal-motif-top{background-image:var(--coastal-right-top)}.coastal-side-right .coastal-motif-middle{background-image:var(--coastal-right-middle)}.coastal-side-right .coastal-motif-bottom{background-image:var(--coastal-right-bottom)}
.coastal-side-phrase{margin:0;width:100%;padding:0 4px;text-align:center;font:700 clamp(18px,2.1vw,25px)/1.05 CoastalDisplay,'Arial Narrow',sans-serif;text-transform:uppercase;transform:rotate(-8deg);letter-spacing:.02em}
.coastal-sheet:has(#specials-content>p:only-child) .coastal-side{justify-content:center;opacity:.65}
.coastal-sheet:has(#specials-content>p:only-child) .coastal-motif:not(.coastal-motif-top),.coastal-sheet:has(#specials-content>p:only-child) .coastal-side-phrase{display:none}
@media(max-width:650px){body{padding:8px}.coastal-sheet{padding:15px 18px 20px;border-radius:10px}.coastal-side{display:none}.coastal-title{font-size:25px}.menu-date{font-size:25px;margin-bottom:12px}.coastal-callouts{grid-template-columns:1fr}.coastal-callout{padding:10px 6px}.coastal-callout+.coastal-callout{border-left:0;border-top:1px solid #111}.coastal-callout h3{font-size:32px}.section-heading{gap:9px;font-size:28px}.coastal-section-label{padding-left:14px;padding-right:14px}.coastal-footer{font-size:15px;margin-top:17px}h3{column-gap:10px}.price{max-width:110px}article p{margin-left:0}}
@media(max-width:360px){.coastal-sheet{padding-left:12px;padding-right:12px}h3{grid-template-columns:minmax(0,1fr) auto}.price{margin-top:0;text-align:right}.coastal-callout .price{text-align:center}.coastal-callout h3{font-size:28px}.coastal-section-label{max-width:82%}}

/* Preserve each provided alternative as a whole pair; source formatter owns wording. */
.coastal-price-pair{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums}

/* Currency amounts remain atomic; labels and descriptions can wrap normally. */
.atomic-money,[data-option-column="amount"]{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums}

.coastal-menu-column,.coastal-menu-section{min-width:0}
.coastal-section-toggle{display:block;position:relative;width:100%;min-height:44px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:inherit;cursor:default}
.coastal-section-toggle:disabled{opacity:1}
.section-heading>.coastal-section-toggle>.coastal-section-label{margin:auto}
.coastal-menu-panel[hidden]{display:none}
@media(max-width:650px){.coastal-section-toggle{cursor:pointer;padding-right:0;text-align:center}.coastal-section-toggle .coastal-section-label{display:inline-block;max-width:100%;position:relative;padding-left:30px;padding-right:30px}.coastal-section-toggle .coastal-section-label::after{content:'';position:absolute;right:12px;top:50%;width:10px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-70%) rotate(45deg);transition:transform .15s ease}.coastal-section-toggle[aria-expanded="true"] .coastal-section-label::after{transform:translateY(-25%) rotate(225deg)}.coastal-section-toggle:focus-visible{outline:2px solid #111;outline-offset:2px}}
@media(prefers-reduced-motion:reduce){.coastal-section-label::after{transition:none}}
@media print{.coastal-menu-panel[hidden]{display:block!important}.coastal-section-label::after{display:none}}
@media(min-width:850px){.coastal-menu-grid[data-columns="2"]{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:start}.coastal-menu-grid .section-heading{gap:8px}.coastal-menu-grid .coastal-section-label{padding-left:12px;padding-right:12px}}

.events-section article{text-align:center}.events-section article h3{display:flex;justify-content:center;flex-wrap:wrap;text-align:center}.events-section article p{margin-left:0;text-align:center}.events-section article .price{text-align:center}

/* Advisory action feedback without changing its box or disclosure behavior. */
.consumer-advisory>button{cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.consumer-advisory>button:hover{background:#f0ede7!important;border-color:#333!important;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.consumer-advisory>button:focus-visible{background:#f2efe8!important;border-color:#333!important;outline:2px solid #111;outline-offset:3px}
.consumer-advisory>button:active{background:#e4e0d7!important;border-color:#222!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.18)}
@media(prefers-reduced-motion:reduce){.consumer-advisory>button{transition:none}}

/* Keep quantity prices beside the dish and its description, never below them. */
.coastal-menu-section .coastal-numeric-option{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:start}
.coastal-menu-section .coastal-numeric-option>h3{display:block;grid-column:1;grid-row:1;min-width:0}
.coastal-menu-section .coastal-numeric-option>p{grid-column:1;grid-row:2;min-width:0}
.coastal-menu-section .coastal-numeric-option>.structured-price-options{grid-column:2;grid-row:1 / span 2;align-self:start;justify-self:end;margin:0!important;line-height:1.15}
.coastal-menu-section .coastal-numeric-option>.structured-price-options>[role="listitem"]:first-child{margin-top:0!important}
/* Catch serving labels wrap as complete wording; slash and amount stay aligned. */
.coastal-callout .structured-price-options{width:100%;max-width:min(100%,30em)!important;margin:7px auto 0!important}
.coastal-callout .structured-price-options>[role="listitem"]{grid-template-columns:minmax(0,1fr) .5em minmax(6.3ch,max-content)!important;align-items:baseline!important;width:100%!important;margin-inline:0!important}
.coastal-callout .structured-price-options .option-side-count{display:inline!important;text-align:inherit!important}

/* Phone hierarchy: keep the daily callouts compact without shrinking prices. */
@media(max-width:650px){
 .coastal-title{font-size:23px}
 .menu-date{font-size:20px;line-height:1.15;padding:2px 4px 6px;margin-bottom:9px}
 .coastal-header{margin-bottom:6px}
 .coastal-callouts{margin-bottom:10px}
 .coastal-callout{padding:8px 6px}
 .coastal-callout .section-heading{font-size:17px;margin-bottom:4px}
 .coastal-callout h3{font-size:25px;line-height:1.1}
 .coastal-callout .structured-price-options{margin-top:5px!important}
 .events-section .section-heading{font-size:24px;margin-top:10px;margin-bottom:7px}
 .events-section article{padding-bottom:6px}
}
@media(max-width:360px){.coastal-callout h3{font-size:23px}}

@media(min-width:651px){.coastal-section-toggle{display:contents}.section-heading>.coastal-section-toggle>.coastal-section-label{margin:0}}

/* The full notice follows visible marked items; printing expands every category. */
.consumer-advisory[hidden]{display:none!important}
@media print{.consumer-advisory[data-raw-items="true"]{display:block!important}}

/* Oyster-specific text follows visible marked oysters; print includes every marked item. */
.consumer-advisory>button[hidden]{display:none!important}
@media print{.consumer-advisory[data-raw-oysters="true"] .oyster-warning{display:inline!important}}

/* Category wording is consistently uppercase, including inside accordion buttons. */
.section-heading .coastal-section-label{text-transform:uppercase}

/* Event headings and names share the daily callout typography. */
.events-section .section-heading>.coastal-section-label{font-size:clamp(20px,2.3vw,26px);line-height:1.1}
.events-section article h3{font:600 clamp(26px,3.1vw,34px)/1.12 Helvetica,Arial,sans-serif}
.events-section article h3>span:first-child{text-transform:none}
@media(max-width:650px){.events-section article h3{font-size:25px;line-height:1.1}}
@media(max-width:360px){.events-section article h3{font-size:23px}}

/* Compact featured names; leave prices and descriptions at their readable sizes. */
.coastal-callout h3,.events-section article h3{font-size:18px;line-height:1.1}
@media(max-width:650px){.coastal-callout h3,.events-section article h3{font-size:18px}}
@media(max-width:360px){.coastal-callout h3,.events-section article h3{font-size:16px}}

/* All category boxes share the Soup/Catch/Events label scale. */
.coastal-menu-section .coastal-section-label{font-size:clamp(20px,2.3vw,26px);line-height:1.1}

/* Center each callout's content beneath its heading in the shared desktop row. */
@media(min-width:651px){
 .coastal-callout{display:flex;flex-direction:column}
 .coastal-callout>.section-heading{flex:none}
 .coastal-callout>article{margin-top:auto;margin-bottom:auto}
}

/* Keep wrapped serving labels beside their slash and price. */
.coastal-callout .structured-price-options>[role="listitem"]{align-items:end!important;column-gap:.25em!important}
.coastal-callout .structured-price-options [data-option-column="quantity"]{text-align:right!important}
/* Event names belong directly under the date, with their own banner. */
.events-section:has(.coastal-event-banner)>.section-heading{display:none}
.events-section .coastal-event-banner{padding:0 0 12px;border:0}
.events-section .coastal-event-banner h3{position:relative;display:flex;align-items:center;justify-content:center;min-height:56px;padding:10px 18px;margin:0 3px 7px;background:#111;color:#fff;border:3px double #fff;outline:1px solid #111;border-radius:8px;gap:12px;font:700 clamp(22px,3vw,30px)/1.1 CoastalDisplay,'Arial Narrow',sans-serif}
.events-section .coastal-event-banner h3>span:first-child{text-transform:uppercase}
.coastal-event-art{flex:0 0 36px;width:36px;height:46px;background:#fff;color:#111;border:1px solid #111;border-radius:3px;display:flex;align-items:center;justify-content:center;font:700 22px/1 Georgia,serif;transform:rotate(-12deg);box-shadow:3px 1px 0 #ddd}
.coastal-event-art:last-child{transform:rotate(12deg);box-shadow:-3px 1px 0 #ddd}
@media(max-width:650px){.events-section .coastal-event-banner h3{font-size:24px;padding:9px 12px;gap:10px}.coastal-event-art{flex-basis:28px;width:28px;height:38px;font-size:18px}}
