/* r165: approved compact 2:3 menu and service cards. */
.tetPage .tetMenuGrid,.tetPage .tetCatalog .tetItems{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.tetPage .tetCatalog .tetCompactCard{display:grid;grid-template-rows:minmax(0,1fr) auto;width:100%;height:auto;min-width:0;aspect-ratio:2/3;padding:0;border:1px solid #dce5dc;border-radius:15px;overflow:hidden;background:#fff;box-shadow:0 4px 14px #173e3007;container-type:inline-size}
.tetPage .tetCatalog .tetCompactCard .tetItemMedia{position:relative;min-height:0;height:auto;flex:auto;background:#fff}
.tetPage .tetCompactCard .tetItemMedia>button{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;padding:0;border:0;border-radius:0;background:white}
.tetPage .tetCompactCard .tetItemMedia img{position:absolute;inset:0;display:block;width:100%;max-width:none;height:100%;object-fit:contain;border-radius:0}
.tetPage .tetCompactCard .tetNumber{position:absolute;top:9px;left:9px;margin:0;padding:1px 6px;min-width:0;background:#fffffff2;color:#53645b;border:1px solid #dce5dc;border-radius:20px;font-size:10px;line-height:1.6;font-weight:550;pointer-events:none}
.tetPage .tetCompactCard .tetItemText{display:grid;grid-template-rows:44px 26px 44px;gap:7px;min-height:0;min-width:0;padding:10px 12px 12px;border-top:1px solid #edf1e7}
.tetPage .tetCompactCard .tetItemHeading{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:6px;min-width:0}
.tetPage .tetCompactCard .tetItemHeading h3{flex:1;min-width:0;min-height:0;max-height:44px;margin:0;display:block;font-size:15px;line-height:1.45;overflow:hidden}
.tetPage .tetCompactCard h3>[data-item-details]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;width:100%;min-width:0;min-height:0;max-height:43.5px;margin:0;padding:0;border:0;border-radius:4px;background:none;color:#173e30;text-align:left;font:inherit;font-weight:650;line-height:1.45;overflow:hidden;overflow-wrap:anywhere}
.tetPage .tetCompactCard .tetTagButton{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex-shrink:0;width:60px;min-width:60px;min-height:44px;margin:0;padding:0;border:0;border-radius:8px;background:none;color:#4b6a53}
.tetTagIcon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;color:#4b6a53}
.tetTagIcon svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tetSpiceIcons{width:auto;color:#a74031;gap:0}
.tetSpiceIcons svg{width:12px;height:18px;stroke-width:1.7}
.tetSpiceIcons svg path:first-child{fill:currentColor;fill-opacity:.85}
.tetSpiceIcons svg path:last-child{stroke:#4c6c44}
.tetSpiceIcons>small{position:absolute;right:-5px;top:-5px;display:grid;place-items:center;width:12px;height:12px;border:1px solid currentColor;border-radius:50%;background:#fff;font:9px/1 system-ui}
.tetDietIcons{display:flex;align-items:center;justify-content:center;gap:6px;height:20px;white-space:nowrap}
.tetDietIcons>small{font-size:10px;line-height:1}
.tetPage .tetCompactCard .tetItemText>.tetPrice,.tetItemDialog .tetPrice{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;min-height:0;max-width:none;margin:0;padding:0;color:#204e35;font-size:21px;font-weight:700;line-height:26px;text-align:center;letter-spacing:0}
.tetPrice .tetAmount,.tetPrice .tetCurrency{font:inherit;line-height:inherit;color:inherit}
.tetPage .tetCompactCard .tetItemText>.tetPrice small,.tetItemDialog .tetPrice small{display:inline;margin:0;color:#607354;font-size:12px;font-weight:400;line-height:1.2;letter-spacing:0}
.tetPage .tetCompactCard .tetItemText>.tetPriceMessage{font-size:14px;line-height:1.35}
.tetPage .tetCompactCard .tetItemActions{display:flex;align-items:center;gap:0;min-height:0;margin:0;padding:0}
.tetPage .tetCompactCard .tetItemText .tetSpeak{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:44px;height:44px;margin:0;padding:5px;border:1px solid #dce6d7;border-radius:9px;background:#edf3e9;color:#355b38;font-size:12px;font-weight:550;line-height:1.4;white-space:nowrap}
.tetPage .tetCompactCard .tetItemText .tetSpeak svg{width:17px;height:17px;flex:none}
.tetPage .tetCompactCard .tetItemText .tetSpeak:hover,.tetPage .tetTagButton:hover{background:#e2eddc;border-color:#bdcfb4}
.tetPage .tetCompactCard .tetItemText .tetSpeak:active,.tetPage .tetTagButton:active{background:#d9e7d2}
.tetPage .tetCompactCard:has(.tetItemActions:empty) .tetItemText{grid-template-rows:44px 26px}
.tetPage .tetCatalog .tetTextItem{aspect-ratio:auto;grid-template-rows:auto}
.tetPage .tetCatalog .tetTextItem .tetItemMedia{display:none}
.tetPage .tetTextItem .tetItemText{border-top:0}
.tetItemDialog{overscroll-behavior:contain}
.tetItemDialog .tetDetailImage{display:block;width:100%;height:auto;margin:0 0 16px;padding:0;border:0;border-radius:12px;background:#fff}
.tetPage .tetItemDialog .tetDetailImage img{position:static;display:block;width:100%;max-width:100%;height:auto;max-height:45dvh;object-fit:contain;border-radius:12px}
.tetItemDialog>h2{margin:0 0 12px;font-size:22px;line-height:1.45}
.tetDetailTags{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:12px 0}
.tetDetailTags>span{display:inline-flex;align-items:center;gap:7px;min-height:32px;font-size:13px;color:#45614d}
.tetItemDialog .tetPriceMessage{font-size:16px}
.tetItemDialog section{padding-top:12px;margin-top:12px}
.tetItemDialog section h3{font-size:16px;margin:0 0 6px}
.tetItemDialog section p{margin:0;font-size:15px;color:#476054}
.tetItemDialog .tetBookService{margin-top:18px;background:#174f3a;color:white;min-height:44px}
.tetItemDialog>button[data-close-item]{position:sticky;top:0;z-index:1;min-height:44px;background:#edf3e9;border-color:#dce6d7}
html:has(.tetItemDialog[open]){overflow:hidden}
.tetCatalogCategoryTabs{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:8px 0 12px;margin:0;max-width:100%}
.tetCatalogCategoryTabs a{display:flex;align-items:center;flex:none;min-height:44px;border:1px solid #d4e2d8;border-radius:22px;padding:8px 14px;background:white;color:#315b43;font-size:14px;text-decoration:none;white-space:nowrap}
.tetCatalogCategoryTabs a[aria-current]{background:#174f3a;color:white;border-color:#174f3a}
.tetSocialRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.tetSocialRow .tetSocials{flex:1;margin:0}
.tetSocialRow [data-store-details-toggle]{margin-left:auto;min-height:44px;font-size:13px;background:#f5faf7;border-color:#d4e2d8;white-space:nowrap}
.tetStoreDetails>summary{display:none}
@container(max-width:229px){
 .tetPage .tetCompactCard .tetItemText{grid-template-rows:44px 24px 44px;gap:4px;padding:6px 8px 8px}
 .tetPage .tetCompactCard .tetItemHeading h3{font-size:14px}
 .tetPage .tetCompactCard h3>[data-item-details]{max-height:40.6px;overflow-wrap:normal}
 .tetPage .tetCompactCard .tetItemText>.tetPrice{font-size:18px;line-height:24px;white-space:nowrap;flex-wrap:nowrap}
 .tetPage .tetCompactCard .tetItemText>.tetPriceMessage{font-size:12px;white-space:normal;line-height:1.2}
 .tetPage .tetCompactCard:has(.tetItemActions:empty) .tetItemText{grid-template-rows:44px 24px}
}
@media(min-width:900px){.tetPage .tetMenuGrid,.tetPage .tetCatalog .tetItems{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
@media(max-width:370px){.tetPage .tetMenuGrid,.tetPage .tetCatalog .tetItems{gap:10px}}
@media(max-width:600px){.tetItemDialog{padding:16px;max-height:90dvh}.tetItemDialog>h2{font-size:19px}.tetSocialRow{gap:8px}}

.tetPage .tetCatalog .tetItemDialog .tetDescription{display:block;max-height:none;height:auto;overflow:visible;-webkit-line-clamp:unset;font-size:15px;line-height:1.7}
.tetItemDialog .tetConfirmedRestriction{font-size:14px;color:#645b39}

/* r166: a readable detail surface with persistent close and action controls. */
.tetPage .tetItemDialog{width:calc(100% - 24px);max-width:600px;max-height:90dvh;padding:0;overflow:hidden;border-radius:20px;box-shadow:0 22px 80px #09281e45}
.tetPage .tetItemDialog[open]{display:flex;flex-direction:column}
.tetItemDialogHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:12px 16px;border-bottom:1px solid #e3ebe5;background:#fff}
.tetItemDialogHeader h2{margin:0;color:#173e30;font-size:18px;font-weight:650;line-height:1.45;text-align:left;overflow-wrap:anywhere}
.tetItemDialogHeader>[data-close-item]{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #dce6d7;border-radius:50%;background:#f0f5ed;color:#355b38;font-size:26px;line-height:1}
.tetItemDialogBody{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:16px;scroll-padding-block:16px}
.tetPage .tetItemDialog .tetDetailImage{margin:0 0 16px;overflow:hidden;background:#f7f9f7;border-radius:14px}
.tetPage .tetItemDialog .tetDetailImage img{display:block;width:100%;height:auto;max-height:min(34dvh,300px);object-fit:contain;border-radius:0}
.tetDetailOverview{padding:2px 0 4px}
.tetDetailOverview>.tetPrice{font-size:23px;line-height:1.4}
.tetDetailOverview>.tetPriceMessage{font-size:20px;line-height:1.4}
.tetDetailOverview .tetDetailTags{justify-content:center;gap:8px;margin:12px 0 0}
.tetDetailOverview .tetDetailTags:empty{display:none}
.tetDetailOverview .tetDetailTags>span{min-height:32px;padding:5px 9px;border:1px solid #e2eadf;border-radius:12px;background:#f5f8f2;font-size:12px;line-height:1.5}
.tetPage .tetCatalog .tetItemDialog .tetDescription,.tetPage .tetItemDialog .tetConditions{display:block;margin:14px 0 0;padding:13px 14px;border:0;border-radius:12px;background:#f7faf8;max-height:none;height:auto;overflow:visible;-webkit-line-clamp:unset}
.tetPage .tetItemDialog .tetDescription h3,.tetPage .tetItemDialog .tetConditions h3{margin:0 0 6px;font-size:14px;font-weight:650;color:#355b46}
.tetPage .tetItemDialog .tetDescription p,.tetPage .tetItemDialog .tetConditions p{margin:0;font-size:14px;line-height:1.8;color:#4b6255}
.tetVariantMore{padding:0;margin-top:14px;border:1px solid #e0e8df;border-radius:12px;background:#fff}
.tetVariantMore>summary{min-height:44px;padding:10px 12px;color:#355b46;font-size:14px;font-weight:600;cursor:pointer}
.tetVariantMore .tetVariantDetails{margin:0 12px;padding:12px 0}
.tetItemDialogFooter{display:flex;flex-wrap:wrap;gap:8px;flex:none;padding:12px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid #e3ebe5;background:#fff;color:#45614d;text-align:center}
.tetItemDialogFooter>.tetSpeak,.tetItemDialogFooter>.tetBookService{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-width:0;min-height:44px;margin:0;padding:10px 12px;border:1px solid #d6e3d0;border-radius:10px;background:#edf3e9;color:#355b38;font-size:14px;line-height:1.4;text-decoration:none}
.tetItemDialogFooter>.tetBookService{border-color:#174f3a;background:#174f3a;color:#fff}
.tetItemDialogFooter .tetSpeak svg{width:18px;height:18px;flex:none}
.tetItemDialogFooter>.tetBookingNote{flex-basis:100%;margin:0;color:#687c70;font-size:11px;line-height:1.6}
@media(max-width:600px){.tetPage .tetItemDialog{width:calc(100% - 20px);max-height:92dvh;border-radius:18px}.tetItemDialogHeader{gap:12px;padding:10px 14px}.tetItemDialogHeader h2{font-size:17px}.tetItemDialogBody{padding:14px}.tetItemDialogFooter{padding-inline:14px}.tetDetailOverview>.tetPrice{font-size:21px}.tetDetailOverview>.tetPriceMessage{font-size:19px}}
@media(max-height:500px){.tetPage .tetItemDialog{max-height:96dvh}.tetItemDialogHeader{padding-block:6px}.tetItemDialogBody{padding-block:10px}.tetItemDialogFooter{padding-block:8px}}

.tetItemDialogBody:focus-visible{outline:2px solid #6b9d79;outline-offset:-2px}
