/* Page-specific styles. All content styles are scoped to .ty-page for future EC integration. */
body { margin: 0; background: #f8f5ef; }
.ty-page { --ink:#252824; --paper:#f8f5ef; --muted:#716e65; --red:#83332e; --line:#dcd6ca; --serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif CJK JP",serif; --sans:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans CJK JP",sans-serif; color:var(--ink); font-family:var(--sans); font-size:15px; line-height:1.9; -webkit-font-smoothing:antialiased; }
.ty-page *, .ty-page *::before, .ty-page *::after { box-sizing:border-box; }
.ty-page h1,.ty-page h2,.ty-page h3,.ty-page p,.ty-page figure,.ty-page dl { margin:0; }
.ty-page a { color:inherit; text-decoration:none; text-underline-offset:5px; }
.ty-page a:focus-visible { outline:2px solid var(--red); outline-offset:7px; }
.ty-page img { max-width:100%; display:block; }
.ty-page address { font-style:normal; }
.ty-page h1,.ty-page h2,.ty-page h3 { font-family:var(--serif); font-weight:500; }
.ty-page h2 { font-size:clamp(29px,3vw,43px); line-height:1.65; letter-spacing:.07em; }
.ty-page section[id] { scroll-margin-top:28px; }
.ty-wrap { width:min(1160px,calc(100% - 112px)); margin-inline:auto; }
.ty-skip { position:fixed; z-index:20; top:8px; left:8px; padding:10px 18px; background:var(--paper); transform:translateY(-150%); }
.ty-skip:focus { transform:none; }
.ty-header { max-width:1440px; margin:auto; min-height:100px; padding:20px 56px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.ty-brand { display:block; flex-shrink:0; }
.ty-brand-kicker { display:block; font-size:10px; letter-spacing:.15em; line-height:1.5; }
.ty-brand-name { font-family:var(--serif); display:flex; align-items:baseline; gap:19px; font-size:30px; letter-spacing:.16em; line-height:1.5; }
.ty-brand-latin { font-family:Georgia,serif; font-size:11px; letter-spacing:.15em; }
.ty-nav { display:flex; align-items:center; gap:31px; font-size:12px; letter-spacing:.04em; }
.ty-nav a { padding:8px 0; }
.ty-nav a:hover { color:var(--red); }
.ty-nav .ty-shop-link { border-bottom:1px solid var(--ink); margin-left:10px; }
.ty-shop-link span { margin-left:14px; }
.ty-hero { position:relative; display:grid; grid-template-columns:.95fr 1.05fr; background:var(--ink); color:var(--paper); padding:78px max(56px,calc((100vw - 1328px)/2)) 64px; gap:54px; overflow:hidden; }
.ty-hero-copy { padding:3px 0 32px; }
.ty-eyebrow { font-family:Georgia,serif; font-size:11px; line-height:1.8; letter-spacing:.17em; color:#c4b797; }
.ty-eyebrow>span { display:inline-block; width:26px; height:1px; margin-right:13px; margin-bottom:4px; background:currentColor; }
.ty-hero-location { font-size:12px; letter-spacing:.13em; margin-top:40px!important; color:#d2cec4; }
.ty-hero h1 { font-size:clamp(50px,5.1vw,74px); line-height:1.4; letter-spacing:.09em; margin-top:18px; }
.ty-hero-motto { font-family:var(--serif); font-size:20px; line-height:1.9; letter-spacing:.07em; margin-top:31px!important; }
.ty-hero-description { font-size:13px; color:#d0cdc3; line-height:2.15; margin-top:15px!important; }
.ty-text-link { display:inline-flex; gap:42px; align-items:center; border-bottom:1px solid #aaa393; padding:8px 0; font-size:12px; letter-spacing:.05em; }
.ty-text-link:hover { color:var(--red); border-color:var(--red); }
.ty-light-link { margin-top:27px; border-color:#777b6b; }
.ty-light-link:hover { color:#e0cba6; border-color:#e0cba6; }
.ty-hero-photo { align-self:center; }
.ty-hero-photo-frame { position:relative; isolation:isolate; aspect-ratio:8/5; overflow:hidden; background:#22251f; box-shadow:0 22px 38px -20px rgba(0,0,0,.55); }
.ty-hero-photo-frame img { width:100%; height:100%; object-fit:cover; object-position:50% 68%; transform:scale(1.08); transform-origin:50% 62%; filter:saturate(.5) brightness(.86) contrast(1.08) sepia(.1); }
.ty-hero-photo-frame::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,rgba(26,30,24,.36) 0%,rgba(26,30,24,.06) 33%,transparent 56%,rgba(26,30,24,.32) 100%),linear-gradient(90deg,rgba(26,30,24,.12),transparent 36%,rgba(26,30,24,.1)); }
.ty-hero-photo-frame::before { content:""; position:absolute; inset:11px; z-index:2; pointer-events:none; border:1px solid rgba(215,197,163,.36); }
.ty-hero-photo figcaption { display:flex; justify-content:space-between; gap:12px; margin-top:15px; font-size:9px; letter-spacing:.05em; color:#c6c6b9; }
.ty-hero-photo figcaption span:first-child { font-family:Georgia,serif; letter-spacing:.12em; }
.ty-hero-side { position:absolute; top:55px; right:16px; writing-mode:vertical-rl; font-family:Georgia,serif; font-size:9px; letter-spacing:.13em; color:#969b8b; }
.ty-philosophy { display:grid; grid-template-columns:240px 1fr; padding-block:112px 110px; }
.ty-section-label { display:flex; align-items:flex-start; gap:20px; padding-top:12px; }
.ty-section-label>span { color:var(--red); font-family:Georgia,serif; font-size:13px; }
.ty-section-label>p { font-family:Georgia,serif; font-size:11px; letter-spacing:.12em; line-height:2.1; }
.ty-section-label small { font-family:var(--sans); font-size:10px; letter-spacing:.06em; color:var(--muted); }
.ty-philosophy-main { max-width:690px; }
.ty-philosophy h2 { font-size:clamp(30px,3vw,43px); line-height:1.65; }
.ty-prose { margin-top:36px; color:#55584f; font-size:14px; line-height:2.3; }
.ty-prose p+p { margin-top:23px; }
.ty-signature { margin-top:35px!important; text-align:right; font-size:11px; letter-spacing:.06em; }
.ty-signature span { font-family:var(--serif); font-size:25px; margin-left:14px; letter-spacing:.13em; }
.ty-choice { padding-block:84px 88px; background:#eee9df; }
.ty-choice-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; }
.ty-dark-eyebrow { color:var(--red); }
.ty-choice h2 { margin-top:18px; }
.ty-choice-heading>p { font-size:13px; color:#68695e; padding-bottom:9px; line-height:2.1; }
.ty-choice-grid { margin-top:46px; display:grid; grid-template-columns:1fr 1.04fr; gap:75px; align-items:center; }
.ty-packing-visual { background:#f6f3ec; padding:16px 22px 35px; text-align:center; }
.ty-packing-visual svg { display:block; width:100%; height:auto; }
.ty-packing-visual>img { width:100%; height:auto; }
.ty-packing-visual figcaption { font-family:var(--serif); font-size:19px; letter-spacing:.07em; }
.ty-packing-visual small { display:block; font-family:var(--sans); margin-top:12px; font-size:10px; color:var(--muted); letter-spacing:0; }
.ty-choice-items article { display:flex; gap:22px; padding:24px 0; border-top:1px solid #d3cabc; }
.ty-choice-items article:last-child { border-bottom:1px solid #d3cabc; }
.ty-item-number { color:var(--red); font-family:Georgia,serif; font-size:12px; padding-top:5px; }
.ty-choice-items h3 { font-size:23px; letter-spacing:.06em; line-height:1.6; }
.ty-choice-items p { margin-top:12px; font-size:13px; line-height:2.05; color:#66665d; }
.ty-shop { padding-block:112px; display:grid; grid-template-columns:1fr 1fr; gap:98px; align-items:center; }
.ty-counter-photo img { width:100%; height:auto; }
.ty-counter-photo figcaption { font-size:10px; margin-top:14px; color:var(--muted); }
.ty-shop-copy h2 { margin-top:24px; }
.ty-shop-intro { font-family:var(--serif); font-size:19px!important; margin-top:26px!important; color:var(--ink)!important; }
.ty-shop-copy>p:not(.ty-eyebrow) { font-size:13px; line-height:2.15; color:#606359; margin-top:22px; }
.ty-shop-address { border-top:1px solid var(--line); margin-top:30px; padding-top:25px; font-size:12px; line-height:2; }
.ty-shop-address>span { display:block; font-size:13px; margin-bottom:8px; }
.ty-shop-copy>.ty-text-link { margin-top:18px; }
.ty-company { background:#f0ede6; padding-block:96px 104px; }
.ty-company-grid { display:grid; grid-template-columns:290px 1fr; gap:42px; align-items:start; }
.ty-company-heading h2 { margin-top:18px; font-size:35px; }
.ty-company-heading>p:not(.ty-eyebrow) { font-size:12px; margin-top:14px; color:var(--muted); }
.ty-company-logo { width:174px; height:174px; object-fit:contain; margin-top:29px; }
.ty-company-data>div { display:grid; grid-template-columns:132px 1fr; gap:25px; border-top:1px solid var(--line); padding:23px 0; }
.ty-company-data>div:last-child { border-bottom:1px solid var(--line); }
.ty-company-data dt { font-size:12px; font-weight:500; color:#626359; }
.ty-company-data dd { margin:0; font-size:13px; line-height:2; overflow-wrap:anywhere; }
.ty-company-data dd p+p { margin-top:16px; }
.ty-company-data dd small { display:block; color:var(--muted); font-size:11px; line-height:1.9; }
.ty-company-data dd strong { display:block; font-weight:500; margin-bottom:4px; }
.ty-company-data ul { list-style:none; padding:0; margin:0; }
.ty-company-data a:hover { text-decoration:underline; }
.ty-contact { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding-block:83px 88px; }
.ty-contact h2 { font-size:32px; margin-top:14px; }
.ty-contact h2+p { font-size:12px; color:var(--muted); margin-top:21px; }
.ty-contact-office { font-size:12px; }
.ty-contact-phone { font-family:Georgia,serif; font-size:37px; line-height:1.5; letter-spacing:.025em; display:inline-block; margin-top:5px; }
.ty-contact-hours { color:var(--muted); font-size:11px; margin-top:5px!important; }
.ty-contact-details>.ty-text-link { font-size:13px; margin-top:15px; }
.ty-contact-details address { font-size:10px; margin-top:18px; color:var(--muted); }
.ty-mascots { border-top:1px solid var(--line); background:white; padding:22px 0; }
.ty-mascot-inner { display:flex; justify-content:center; align-items:center; gap:20px; }
.ty-mascot-inner>img { width:275px; height:auto; flex-shrink:0; }
.ty-mascot-greeting { font-family:var(--serif); font-size:21px; letter-spacing:.06em; line-height:1.7; margin-top:12px!important; }
.ty-mascot-names { font-size:10px; line-height:1.9; color:var(--muted); margin-top:14px!important; }
.ty-mascot-names span+span { margin-left:18px; }
.ty-closing { background:var(--ink); color:var(--paper); padding-block:55px; }
.ty-closing-inner { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.ty-closing-inner>div>p:last-child { font-family:var(--serif); font-size:29px; letter-spacing:.07em; margin-top:13px; }
.ty-button { border:1px solid #aaa890; min-width:245px; padding:19px 22px; display:inline-flex; justify-content:space-between; gap:35px; align-items:center; font-size:12px; letter-spacing:.04em; transition:background .2s,color .2s; }
.ty-button:hover { background:var(--paper); color:var(--ink); }
.ty-footer { padding:26px 56px; display:flex; justify-content:space-between; gap:20px; align-items:center; font-size:10px; color:var(--muted); }
.ty-footer small { font-family:Georgia,serif; font-size:10px; letter-spacing:.03em; }
.ty-mobile-br { display:none; }
@media(min-width:1600px) { .ty-hero { gap:75px; } }
@media(max-width:1050px) {
 .ty-header { padding-inline:35px; }
 .ty-nav { gap:20px; }
 .ty-brand-latin { display:none; }
 .ty-wrap { width:calc(100% - 80px); }
 .ty-hero { padding:65px 40px; gap:35px; }
 .ty-hero h1 { font-size:53px; }
 .ty-hero-motto { font-size:17px; }
 .ty-philosophy { grid-template-columns:190px 1fr; }
 .ty-choice-grid { gap:40px; }
 .ty-shop { gap:50px; }
 .ty-shop h2 { font-size:32px; }
 .ty-company-grid { grid-template-columns:235px 1fr; gap:30px; }
 .ty-company-data>div { grid-template-columns:105px 1fr; gap:15px; }
}
@media(max-width:760px) {
 .ty-header { padding:17px 22px; min-height:80px; gap:14px; }
 .ty-brand-name { font-size:26px; }
 .ty-brand-kicker { font-size:9px; }
 .ty-nav>a:not(.ty-shop-link) { display:none; }
 .ty-nav .ty-shop-link { font-size:10px; margin-left:0; }
 .ty-shop-link span { margin-left:8px; }
 .ty-wrap { width:calc(100% - 48px); }
 .ty-hero { grid-template-columns:1fr; padding:42px 24px 34px; gap:33px; }
 .ty-hero-copy { padding:0; }
 .ty-hero-location { margin-top:26px!important; font-size:11px; }
 .ty-hero h1 { font-size:clamp(44px,11.4vw,62px); line-height:1.4; margin-top:16px; }
 .ty-hero-motto { font-size:17px; margin-top:25px!important; }
 .ty-hero-description { font-size:12px; margin-top:12px!important; }
 .ty-light-link { margin-top:20px; }
 .ty-hero-photo { width:100%; }
 .ty-hero-photo figcaption { font-size:8px; gap:8px; }
 .ty-hero-side { display:none; }
 .ty-philosophy { grid-template-columns:1fr; padding-block:66px; gap:29px; }
 .ty-section-label { padding:0; gap:14px; }
 .ty-section-label>p { display:flex; align-items:baseline; gap:15px; }
 .ty-section-label>p br { display:none; }
 .ty-philosophy h2 { font-size:30px; line-height:1.75; }
 .ty-prose { margin-top:27px; font-size:13px; line-height:2.15; }
 .ty-prose p+p { margin-top:22px; }
 .ty-prose br { display:none; }
 .ty-signature { margin-top:25px!important; font-size:10px; }
 .ty-signature span { font-size:21px; margin-left:10px; }
 .ty-choice { padding-block:57px 62px; }
 .ty-choice-heading { display:block; }
 .ty-choice h2 { font-size:29px; margin-top:18px; }
 .ty-choice-heading>p { margin-top:21px; font-size:12px; padding:0; }
 .ty-choice-grid { grid-template-columns:1fr; margin-top:30px; gap:28px; }
 .ty-packing-visual { padding:5px 12px 25px; }
 .ty-packing-visual svg { max-width:410px; margin:auto; }
 .ty-packing-visual figcaption { font-size:18px; }
 .ty-choice-items article { padding:22px 0; gap:17px; }
 .ty-choice-items h3 { font-size:22px; }
 .ty-choice-items p { font-size:12px; margin-top:11px; }
 .ty-shop { padding-block:64px; grid-template-columns:1fr; gap:34px; }
 .ty-counter-photo { width:100%; max-width:520px; margin:auto!important; }
 .ty-shop-copy h2 { font-size:30px; margin-top:19px; }
 .ty-shop-copy>p:not(.ty-eyebrow) { font-size:12px; margin-top:20px; }
 .ty-shop-intro { font-size:18px!important; }
 .ty-shop-copy>p br { display:none; }
 .ty-shop-copy>.ty-shop-intro br { display:block; }
 .ty-company { padding-block:60px 66px; }
 .ty-company-grid { grid-template-columns:1fr; gap:32px; }
 .ty-company-heading { position:relative; min-height:110px; padding-right:95px; }
 .ty-company-heading h2 { font-size:29px; margin-top:15px; }
 .ty-company-heading>p:not(.ty-eyebrow) { margin-top:8px; font-size:11px; }
 .ty-company-logo { position:absolute; right:-9px; top:0; width:112px; height:112px; margin:0; }
 .ty-company-data>div { grid-template-columns:86px minmax(0,1fr); gap:14px; padding:19px 0; }
 .ty-company-data dt { font-size:11px; }
 .ty-company-data dd { font-size:12px; }
 .ty-company-data dd small { font-size:10px; }
 .ty-contact { grid-template-columns:1fr; gap:28px; padding-block:59px 62px; }
 .ty-contact h2 { font-size:28px; }
 .ty-contact h2+p { margin-top:16px; }
 .ty-contact-phone { font-size:34px; }
 .ty-contact-hours { font-size:10px; }
 .ty-contact-details address { font-size:10px; }
 .ty-mascots { padding:30px 0; }
 .ty-mascot-inner { gap:0; align-items:center; }
 .ty-mascot-inner>img { width:44%; }
 .ty-mascot-inner>div { flex:1; }
 .ty-mascot-inner .ty-eyebrow { font-size:9px; letter-spacing:.09em; }
 .ty-mascot-greeting { font-size:17px; margin-top:9px!important; }
 .ty-mascot-names { font-size:9px; margin-top:11px!important; }
 .ty-mascot-names span { display:block; }
 .ty-mascot-names span+span { margin:0; }
 .ty-closing { padding-block:40px; }
 .ty-closing-inner { display:block; }
 .ty-closing-inner>div>p:last-child { font-size:25px; margin-top:16px; }
 .ty-button { margin-top:26px; width:100%; min-width:0; padding:17px 20px; }
 .ty-footer { padding:23px 24px; flex-wrap:wrap; gap:10px 16px; font-size:9px; }
 .ty-footer>span { width:100%; }
 .ty-footer small { margin-right:auto; font-size:9px; }
 .ty-desktop-br { display:none; }
 .ty-mobile-br { display:block; }
}
@media(max-width:360px) {
 .ty-header { padding-inline:18px; }
 .ty-wrap { width:calc(100% - 36px); }
 .ty-hero { padding-inline:18px; }
 .ty-hero-motto { font-size:15px; }
 .ty-philosophy h2 { font-size:27px; }
 .ty-company-data>div { grid-template-columns:76px minmax(0,1fr); gap:10px; }
 .ty-mascot-greeting { font-size:15px; }
}
@media(prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth; } }
@media print { .ty-nav,.ty-closing,.ty-skip,.ty-footer>a { display:none; } .ty-hero { background:white; color:var(--ink); } .ty-wrap { width:100%; } .ty-company-data>div { break-inside:avoid; } }
