/* TCS type + colour system (Vale, 2026-10-15). Loaded last on the homepage.
   Two families: Cardo for display text only, Inter for everything else (Noto JP behind each for Japanese).
   Seven sizes, two weights (400, 500), five inks, two accents. Every section on the page maps onto these. */
html:root,html[lang]{
 --tcs-serif:Cardo,'Noto Serif JP',serif!important;
 --tcs-sans:Inter,'Noto Sans JP',sans-serif!important;
 /* sizes */
 --tcs-display:clamp(42px,4.6vw,76px);  /* section titles */
 --tcs-title:clamp(30px,2.8vw,44px);    /* feature titles: dish, gift, journal, sub-sections */
 --tcs-item:clamp(22px,1.8vw,28px);     /* names in lists and cards */
 --tcs-lead:18px;                       /* section intros */
 --tcs-body:16px;                       /* paragraphs */
 --tcs-small:14px;                      /* meta, dates, footer links, UI */
 --tcs-label:12px;                      /* uppercase eyebrows and tags, tracked .08em */
 /* inks */
 --tcs-ink:#292d28;--tcs-ink-2:#292d28;--tcs-ink-3:#292d28;--tcs-line:rgba(41,45,40,.14);--tcs-on-dark:#f6f4ee;
 /* accents: green for buttons and dark surfaces, orange for "go" circles */
 --tcs-green:#263228;--tcs-orange:#e37222;
 /* the reference theme's own tokens, pointed at the system */
 --font-family-serif:var(--tcs-serif)!important;--font-family-eng:var(--tcs-sans)!important;--font-family-sans:var(--tcs-sans)!important;
 --font-weight-normal:400!important;--tcs-type-body:16px!important;--tcs-type-label:12px!important;
 --letter-spacing-body:0!important;--letter-spacing-copy:0!important;--letter-spacing-heading:0!important;--letter-spacing-xs:0!important;--letter-spacing-s:0!important;--letter-spacing-m:0!important;--letter-spacing-l:0!important;--letter-spacing-xl:0!important;--letter-spacing-xxl:0!important;
}

/* ---------- display: section titles ---------- */
html :is(#content,body) .tcs-h,html :is(#content,body) .p-top-well-being__copy,html :is(#content,body) .tcs-close .tcs-close__title,
html :is(#content,body) .tcs-class-section .tcs-class-section__head h2,html :is(#content,body) .tcs-team .tcs-team__head h2,html :is(#content,body) .tcs-made .tcs-made__head h2{
 font-family:var(--tcs-serif)!important;font-size:var(--tcs-display)!important;font-weight:400!important;line-height:1.04!important;letter-spacing:-.02em!important}
html[lang=ja] :is(#content,body) .tcs-h,html[lang=ja] :is(#content,body) .p-top-well-being__copy,html[lang=ja] :is(#content,body) .tcs-close .tcs-close__title{line-height:1.25!important;letter-spacing:.02em!important;word-break:auto-phrase}

/* ---------- title ---------- */
html :is(#content,body) .tcs-made .tcs-made__copy h3,html :is(#content,body) .tcs-more .tcs-more__title,html :is(#content,body) .tcs-dietary h3,html :is(#content,body) .p-top-member-ship__heading,
html :is(#content,body) .p-top-news__list-item-heading .c-link-anim__item,html :is(#content,body) .tcs-groups-dietary strong{
 font-family:var(--tcs-serif)!important;font-size:var(--tcs-title)!important;font-weight:400!important;line-height:1.1!important;letter-spacing:-.01em!important;color:var(--tcs-ink)!important}
html :is(#content,body) .tcs-groups-dietary strong{display:block;margin-bottom:12px}
html :is(#content,body) .p-top-member-ship__heading,html :is(#content,body) .tcs-dietary h3{font-size:var(--tcs-item)!important}

/* ---------- item: names in lists and cards ---------- */
html :is(#content,body) .tcs-class-card h3,html :is(#content,body) .tcs-team .tcs-team__name,html :is(#content,body) .tcs-made__name,html :is(#content,body) .p-top-spa__pick-up-item-heading .c-link-anim__item,
html :is(#content,body) .p-news__list-item-heading .c-link-anim__item,html :is(#content,body) .tcs-footer-contact__mail{
 font-family:var(--tcs-serif)!important;font-size:var(--tcs-item)!important;font-weight:400!important;line-height:1.15!important;letter-spacing:0!important;color:var(--tcs-ink)}

/* ---------- lead / body ---------- */
html :is(#content,body) .tcs-class-section .tcs-class-section__intro,html :is(#content,body) .tcs-made .tcs-made__intro,html :is(#content,body) .tcs-made .tcs-made__desc,html :is(#content,body) .p-top-well-being__text{
 font-family:var(--tcs-sans)!important;font-size:var(--tcs-lead)!important;font-weight:400!important;line-height:1.6!important;letter-spacing:0!important}
html body #content .c-text,html :is(#content,body) .p-top-spa__text,html :is(#content,body) .p-top-access__text,html :is(#content,body) .p-top-spa__pick-up-item-text,html :is(#content,body) .tcs-groups-dietary p,
html :is(#content,body) .tcs-dietary p,html :is(#content,body) .tcs-news-excerpt,html :is(#content,body) .tcs-team .tcs-team__text,html :is(#content,body) .tcs-more .tcs-more__text{
 font-family:var(--tcs-sans)!important;font-size:var(--tcs-body)!important;font-weight:400!important;line-height:1.6!important;letter-spacing:0!important;color:var(--tcs-ink-2)!important}
html :is(#content,body) .p-top-well-being .c-text,html :is(#content,body) .p-top-well-being__text{color:var(--tcs-on-dark)!important}

/* ---------- small: meta, dates, UI ---------- */
html :is(#content,body) .p-top-news__list-item-date,html :is(#content,body) .p-news__list-item-date,html :is(#content,body) .p-top-information__news-item-date,html :is(#content,body) .tcs-class-card__facts,
html :is(#content,body) .p-top-information__news-item-title-label,html :is(#content,body) .p-top-member-ship__text,html :is(#content,body) .tcs-footer .l-footer-nav a,html :is(#content,body) .tcs-footer .l-footer-link a,
html :is(#content,body) .tcs-footer .l-footer-copyright,html :is(#content,body) .tcs-footer-contact__list>div,html :is(#content,body) .tcs-class-filters button{
 font-family:var(--tcs-sans)!important;font-size:var(--tcs-small)!important;font-weight:400!important;letter-spacing:0!important;font-variant-numeric:tabular-nums}
html :is(#content,body) .p-top-news__list-item-date,html :is(#content,body) .p-news__list-item-date,html :is(#content,body) .p-top-information__news-item-date{color:var(--tcs-ink-3)!important}
html :is(#content,body) .p-top-information__news-item-title-label{color:var(--tcs-ink)!important}

/* ---------- label: uppercase, tracked ---------- */
html :is(#content,body) .p-top-information__news-heading,html :is(#content,body) .p-top-spa__pick-up-heading-label,html :is(#content,body) .c-category-item,html :is(#content,body) .tcs-footer .l-footer-bottom-link__item a,
html :is(#content,body) .tcs-footer-contact__list dt,html :is(#content,body) .tcs-footer .tcs-footer-contact__eyebrow,html :is(#content,body) .tcs-eyebrow,html :is(#content,body) .tcs-team__meta,html :is(#content,body) .tcs-made .tcs-made__class,
html :is(#content,body) .tcs-made .tcs-made__eyebrow,html :is(#content,body) .tcs-more .tcs-more__eyebrow,html :is(#content,body) .tcs-close .tcs-close__eyebrow,html :is(#content,body) .tcs-team .tcs-team__eyebrow,html :is(#content,body) .tcs-class-section__eyebrow{
 font-family:var(--tcs-sans)!important;font-size:var(--tcs-label)!important;font-weight:500!important;letter-spacing:.08em!important;text-transform:uppercase;line-height:1.6!important}
html :is(#content,body) .p-top-information__news-heading,html :is(#content,body) .p-top-spa__pick-up-heading-label,html :is(#content,body) .tcs-footer .l-footer-bottom-link__item a,html :is(#content,body) .tcs-footer-contact__list dt,
html :is(#content,body) .tcs-footer .tcs-footer-contact__eyebrow,html :is(#content,body) .tcs-team__meta{color:var(--tcs-ink-3)!important}
html :is(#content,body) .tcs-eyebrow,html :is(#content,body) .tcs-class-section__eyebrow,html :is(#content,body) .tcs-team .tcs-team__eyebrow,html :is(#content,body) .tcs-made .tcs-made__eyebrow,html :is(#content,body) .tcs-more .tcs-more__eyebrow{color:var(--tcs-ink-2)!important}
.tcs-eyebrow{margin:0 0 22px;display:flex;align-items:center;gap:14px}
.tcs-eyebrow::before{content:"";width:32px;height:1px;background:currentColor;opacity:.45}
html :is(#content,body) .p-top-spa__pick-up-heading::before,html :is(#content,body) .p-top-spa__pick-up-heading-icon{display:none!important}

/* ---------- links: one text link, one "go" circle ---------- */
html :is(#content,body) .c-button__label,html :is(#content,body) .tcs-made__link span,html :is(#content,body) .tcs-more__link span,html :is(#content,body) .tcs-team__more span,html :is(#content,body) .tcs-footer-contact__form span,
html :is(#content,body) .tcs-groups-dietary a,html :is(#content,body) .tcs-dietary a,html :is(#content,body) .tcs-class-card__links a{
 font-family:var(--tcs-sans)!important;font-size:15px!important;font-weight:500!important;letter-spacing:0!important}
html :is(#content,body) .tcs-made__link i,html :is(#content,body) .tcs-more__link i,html :is(#content,body) .tcs-team__more i,html :is(#content,body) .tcs-footer-contact__form i{width:36px;height:36px;border:0;background:var(--tcs-orange);color:#fff}
html :is(#content,body) .tcs-made__link:hover i,html :is(#content,body) .tcs-more__card:hover .tcs-more__link i,html :is(#content,body) .tcs-team__more:hover i,html :is(#content,body) .tcs-footer-contact__form:hover i{background:var(--tcs-green);color:#fff}
html :is(#content,body) .c-button .c-circle-icon{width:36px!important;height:36px!important}

/* ---------- inks: no stray #1a1a1a / #5b5b55 / #34382f ---------- */
html body #content,html :is(#content,body) .tcs-footer{color:var(--tcs-ink)}
html :is(#content,body) .p-top-news,html :is(#content,body) .p-top-spa,html :is(#content,body) .p-top-access,html :is(#content,body) .p-top-information,html :is(#content,body) .tcs-dietary{color:var(--tcs-ink)!important}
html :is(#content,body) .p-top-news .c-link-anim__item,html :is(#content,body) .p-top-spa .c-link-anim__item,html :is(#content,body) .p-top-spa__text,html :is(#content,body) .c-button__label{color:inherit}
.tcs-head{display:block}
html :is(#content,body) .tcs-head .tcs-h{display:block;text-transform:none;color:var(--tcs-ink)}
html :is(#content,body) .p-top-section-header__heading.tcs-head .tcs-eyebrow{margin-bottom:18px}
/* last strays onto the five inks */
html :is(#content,body) .p-top-news .c-link-anim__item,html :is(#content,body) .tcs-dietary a,html :is(#content,body) .tcs-groups-dietary a,html :is(#content,body) .tcs-class-filters button,
html :is(#content,body) .p-top-member-ship__text,html :is(#content,body) .tcs-class-card h3,html :is(#content,body) .tcs-class-card__links a:first-child{color:var(--tcs-ink)!important}
html :is(#content,body) .tcs-class-section .tcs-class-section__intro,html :is(#content,body) .tcs-made .tcs-made__intro,html :is(#content,body) .tcs-class-card__facts,html :is(#content,body) .tcs-class-card__links a:not(:first-child){color:var(--tcs-ink-2)!important}
html :is(#content,body) .tcs-class-card__number,html :is(#content,body) .tcs-class-rail-count,html :is(#content,body) [class*="carousel-count"],html :is(#content,body) .tcs-made__index button:not(.is-active):not(:hover){color:var(--tcs-ink-3)!important}
html :is(#content,body) .tcs-made__cls{font-size:var(--tcs-small)!important}
html :is(#content,body) .tcs-class-card__number,html :is(#content,body) .tcs-made__num{font:500 var(--tcs-label)/1 var(--tcs-sans)!important;letter-spacing:.04em!important;font-variant-numeric:tabular-nums}
/* section heads: space below, and sub-heads one step down from display */
html :is(#content,body) .tcs-head{margin-bottom:28px!important}
html :is(#content,body) .tcs-groups-dietary strong{font-size:var(--tcs-item)!important}
/* tags: quiet outlined labels, not orange blocks (orange is only the go circle) */
html :is(#content,body) .c-category-item{background:transparent!important;color:var(--tcs-ink-2)!important;border:1px solid var(--tcs-line);padding:3px 8px!important;border-radius:2px}
/* GROUPS: "Learn more" repeated the two rows below it (both go to private-groups/) */
html :is(#content,body) .p-top-spa__button{display:none!important}
/* Japanese: full-width glyphs need one step smaller display, phrase-aware breaks and balanced lines */
html[lang=ja]:root{--tcs-display:clamp(36px,3.8vw,62px);--tcs-title:clamp(26px,2.4vw,38px);--tcs-item:clamp(20px,1.6vw,26px)}
html[lang=ja] :is(#content,body) :is(.tcs-h,h2,h3,.tcs-made__copy h3,.tcs-more__title,.tcs-groups-dietary strong,.tcs-close__title,.tcs-team__name,.p-top-member-ship__heading,.p-top-well-being__copy){word-break:auto-phrase;text-wrap:balance;line-break:strict}
/* Kira 2026-10-15: browsers without auto-phrase (Safari) keep JA heading words whole and break at 、 instead of mid-word (料|理). */
@supports not (word-break:auto-phrase){html[lang=ja] :is(#content,body) :is(.tcs-h,h2,h3,.tcs-more__title,.tcs-groups-dietary strong,.tcs-close__title,.tcs-team__name,.p-top-member-ship__heading,.p-top-well-being__copy){word-break:keep-all;overflow-wrap:anywhere}}
/* links on dark photo bands stay light */
html :is(#content,body) :is(.p-top-well-being,.p-top-kv,.tcs-close-section) :is(.c-button,.c-button__label,.c-link-anim__item){color:var(--tcs-on-dark)!important}
html :is(#content,body) :is(.p-top-well-being,.p-top-kv) .c-button{border-color:rgba(246,244,238,.6)!important}
