/* Brand tokens: change these to update the palette across the website. */
.product-image{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.featured-dessert>.product-image{aspect-ratio:1;object-fit:cover}.product-image[hidden]{display:none}.dessert-item:has(.product-image[hidden]){grid-template-columns:1fr}
:root{--paper:#faf8f3;--ink:#3e291f;--green:#243f32;--soft:#f0ede5;--white:#fff;--muted:#65594f;--gutter:clamp(22px,5vw,88px);--body:18px;--serif:"Noto Serif TC","Songti TC","PMingLiU",serif;--sans:"Microsoft JhengHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:var(--body);line-height:1.7}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--green);outline-offset:7px}a:hover{color:var(--green)}a:active{transform:translateY(1px)}.wrap{padding-inline:var(--gutter)}.skip-link{position:absolute;top:12px;left:12px;transform:translateY(-160%);padding:10px 18px;background:var(--white);z-index:10}.skip-link:focus{transform:none}.site-header{min-height:108px;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1800px;margin:auto}.brand{display:flex;align-items:center;gap:19px}.brand-name{font-size:38px;line-height:1.1;letter-spacing:.14em}.brand-en{display:block;font:11px/1.8 var(--sans);letter-spacing:.16em;margin-top:5px}.cake-mark{width:73px;height:61px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.site-header nav{display:flex;gap:38px;align-items:center;font-size:16px}.site-header nav a{padding-block:12px}.nav-contact{color:var(--green)}.hero{display:grid;grid-template-columns:.9fr 1.25fr;align-items:center;gap:48px;max-width:1800px;margin:auto;padding-top:24px;padding-bottom:54px}.hero-copy{padding-block:35px}.hero h1{font-size:clamp(42px,5.5vw,84px);font-weight:500;line-height:1.23;letter-spacing:-.045em;margin:0}.hero-copy p{font-size:clamp(17px,1.55vw,23px);margin:30px 0 34px;line-height:1.9}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:44px;background:var(--green);color:var(--paper);padding:17px 27px;font-size:18px;transition:transform .2s}.button:hover{color:var(--paper);transform:translateY(-3px)}.dessert-photo{background-image:url("assets/desserts.png");background-repeat:no-repeat;background-size:200% 200%;aspect-ratio:3/2;background-color:var(--soft)}.basque{background-position:0 0}.brownie{background-position:100% 0}.brulee{background-position:0 100%}.panna{background-position:100% 100%}.hero-image{width:100%}.social-bar{display:flex;justify-content:space-around;gap:24px;padding-block:24px;background:var(--soft)}.social-bar a{display:flex;align-items:center;gap:clamp(18px,4vw,65px);font-size:18px;transition:transform .2s}.social-bar a:hover{transform:translateY(-3px)}.desserts{max-width:1800px;margin:auto;padding-top:90px;padding-bottom:90px}h2{font-size:clamp(30px,3.7vw,56px);line-height:1.3;font-weight:500;letter-spacing:-.035em;margin:0 0 34px}h3{font-size:clamp(23px,2.2vw,32px);line-height:1.4;font-weight:500;margin:18px 0 8px}p{margin:0}.dessert-layout{display:grid;grid-template-columns:1fr 1fr;gap:38px}.featured-photo{height:calc(100% - 122px);min-height:320px;overflow:hidden;background:var(--soft)}.featured-photo .dessert-photo{height:100%;aspect-ratio:auto;background-size:auto 200%;background-position:0 0}.featured-dessert p{font-size:17px;line-height:1.9}.dessert-list{display:grid;gap:24px}.dessert-item{display:grid;grid-template-columns:1.25fr .8fr;gap:26px;align-items:center}.dessert-item h3{margin:0 0 12px}.dessert-item p{font-size:16px}.about{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding-block:66px;background:var(--soft);align-items:center}.about h2{margin:0}.about>div{max-width:560px}.about p{font-size:18px;line-height:2}.text-link{display:inline-block;margin-top:24px;color:var(--green)}.text-link span{display:inline-block;margin-left:20px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-block:90px;align-items:center;max-width:1800px;margin:auto}.contact p{max-width:420px}.contact-links{display:grid;gap:10px}.contact-placeholder{display:flex;justify-content:space-between;gap:16px;background:var(--soft);padding:14px 20px;font-size:21px}.contact-placeholder small{font:13px/2.5 var(--sans);color:var(--muted)}.contact-links .setup-note{font:13px/1.8 var(--sans);color:var(--muted);margin-top:6px}.site-footer{background:var(--green);color:var(--paper);padding-block:35px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}.footer-brand{font-size:37px;letter-spacing:.12em}.footer-brand span{display:block;font:11px/1.7 var(--sans);letter-spacing:.14em}.footer-brand:hover{color:var(--white)}.site-footer p{font-size:16px}.site-footer small{font:12px/1.7 var(--sans);max-width:280px}section{scroll-margin-top:24px}
@media(min-width:1000px) and (prefers-reduced-motion:no-preference){.hero-copy{animation:arrive .7s ease both}.hero-image{animation:arrive 1s ease both}.dessert-item{animation:arrive .9s ease both}@keyframes arrive{from{opacity:.5;transform:translateY(18px)}to{opacity:1;transform:none}}}
@media(min-width:1800px){.social-bar,.about,.site-footer{padding-inline:max(var(--gutter),calc((100vw - 1624px)/2))}}
@media(max-width:1000px){.site-header nav{gap:24px}.nav-contact{display:none}.hero{gap:28px}.hero-copy p{font-size:17px}.dessert-layout{gap:26px}.dessert-item{grid-template-columns:1.2fr 1fr;gap:18px}.dessert-item h3{font-size:24px}.featured-photo{min-height:290px}.about{gap:32px}.contact{gap:36px}}
@media(max-width:640px){:root{--body:16px}.site-header{min-height:88px;gap:12px}.brand{gap:10px}.brand-name{font-size:29px}.brand-en{font-size:9px}.cake-mark{width:46px;height:44px}.site-header nav{gap:18px;font-size:14px}.hero{grid-template-columns:1fr;gap:28px;padding-top:20px;padding-bottom:28px}.hero-copy{padding-block:8px}.hero h1{font-size:clamp(42px,10vw,62px)}.hero-copy p{margin:22px 0 25px;line-height:1.9}.button{font-size:16px;padding:14px 22px;gap:38px}.hero-image{aspect-ratio:3/2}.social-bar{gap:12px;padding-block:20px;justify-content:space-between}.social-bar a{font-size:13px;gap:6px}.desserts{padding-top:52px;padding-bottom:52px}h2{font-size:30px;margin-bottom:24px}.dessert-layout{grid-template-columns:1fr;gap:32px}.featured-photo{min-height:0;height:auto;aspect-ratio:1.2}.featured-photo .dessert-photo{background-size:auto 200%}.featured-dessert h3{font-size:27px;margin-top:16px}.featured-dessert p{font-size:16px}.dessert-list{gap:22px}.dessert-item{grid-template-columns:1.15fr 1fr;gap:20px}.dessert-item h3{font-size:23px;margin-bottom:7px}.dessert-item p{font-size:14px}.about,.contact{grid-template-columns:1fr;gap:25px;padding-block:48px}.about h2{font-size:32px}.about p{font-size:16px}.contact h2{margin-bottom:20px}.contact-placeholder{font-size:18px}.site-footer{padding-block:30px;gap:20px}.site-footer small{max-width:none;width:100%}.footer-brand{font-size:32px}.site-footer p{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Product catalogue: reference-led equal square imagery and three-column layout. */
.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,4vw,64px);row-gap:64px;align-items:start}
.product-card{min-width:0}
.product-media{aspect-ratio:1;position:relative;overflow:hidden;border-radius:8px;background:var(--soft)}
.product-media .product-image{width:100%;height:100%;aspect-ratio:1;object-fit:cover;transition:transform .35s ease}
.product-media .dessert-photo{width:100%;height:100%;aspect-ratio:1;background-size:300% 200%;transition:transform .35s ease}
.product-media .basque{background-position:12.5% 0}.product-media .brownie{background-position:87.5% 0}.product-media .brulee{background-position:12.5% 100%}.product-media .panna{background-position:87.5% 100%}
.product-card:hover .product-image,.product-card:hover .dessert-photo{transform:scale(1.035)}
.product-copy{padding-top:18px}.product-copy h3{font-family:var(--sans);font-size:19px;font-weight:600;line-height:1.5;margin:0 0 8px;overflow-wrap:anywhere}.product-copy p{font-family:var(--sans);font-size:15px;line-height:1.8;overflow-wrap:anywhere}
.photo-pending{position:absolute;inset:0;display:grid;place-items:center;font:16px var(--sans);color:var(--muted)}.photo-pending[hidden]{display:none}
@media(max-width:1000px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 24px}}
@media(max-width:480px){.product-grid{grid-template-columns:1fr;gap:36px}.product-copy{padding-top:14px}}
@media(prefers-reduced-motion:reduce){.product-card:hover .product-image,.product-card:hover .dessert-photo{transform:none}}

.brand{min-width:0}.brand-name{overflow-wrap:anywhere;letter-spacing:.05em}.brand-logo{width:80px;height:64px;object-fit:contain;flex-shrink:0}.cake-mark[hidden]{display:none}@media(max-width:640px){.brand-logo{width:48px;height:44px}.brand-name{font-size:clamp(18px,6vw,29px)}.site-header{flex-wrap:wrap;padding-block:16px}.brand-en{overflow-wrap:anywhere}}

.category-filters{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 32px}.category-filters button{font:16px var(--sans);padding:12px 22px;border:0;background:var(--soft);color:var(--ink);cursor:pointer}.category-filters button[aria-pressed=true]{background:var(--green);color:var(--white)}.category-filters button:focus-visible{outline:3px solid var(--green);outline-offset:3px}.product-card[hidden]{display:none}

.site-footer{align-items:flex-start}.business-contact{margin-left:auto;max-width:480px;min-width:240px;flex:0 1 480px}.business-contact h2{font:20px/1.5 var(--sans);letter-spacing:0;margin:0 0 18px}.business-contact dl{margin:0;display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 16px;font:15px/1.8 var(--sans)}.business-contact dt,.business-contact dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.business-contact a:hover{color:var(--white);text-decoration:underline}.business-contact a:focus-visible{outline-color:var(--paper)}.business-contact p{font:15px/1.8 var(--sans)}.site-footer .site-disclaimer{flex-basis:100%;max-width:none}@media(max-width:640px){.business-contact{margin:12px 0 0;flex-basis:100%;min-width:0}.business-contact dl{grid-template-columns:80px minmax(0,1fr)}}

.hero-copy h1,.hero-copy p{white-space:pre-line;overflow-wrap:anywhere}

.footer-brand{display:flex;align-items:center;gap:14px;letter-spacing:normal;min-width:0;max-width:100%}.footer-brand .brand-name{display:block;font-family:var(--serif);font-size:30px;line-height:1.1;letter-spacing:.05em}.footer-brand .brand-en{display:block;font:10px/1.8 var(--sans);letter-spacing:.14em;margin-top:5px}.footer-brand .brand-logo{width:62px;height:50px}.footer-brand .cake-mark{width:57px;height:48px}.footer-brand:focus-visible{outline-color:var(--paper)}@media(max-width:640px){.footer-brand .brand-name{font-size:24px}.footer-brand .brand-logo{width:40px;height:36px}.footer-brand .cake-mark{width:38px;height:36px}.footer-brand .brand-en{font-size:9px}}

/* Text-led homepage after removing the cover photograph. */
.hero{grid-template-columns:minmax(0,1fr);padding-top:54px;padding-bottom:64px}.hero-copy{max-width:1100px;width:100%;padding-block:20px}.hero-copy h1{max-width:100%}#footer-description{white-space:pre-line;max-width:340px;overflow-wrap:anywhere;font-size:15px;line-height:1.8}@media(max-width:640px){.hero{padding-top:24px;padding-bottom:36px}.hero-copy{padding-block:8px}#footer-description{max-width:100%;flex-basis:100%;font-size:14px}}

#contact-title,#contact-description{white-space:pre-line;overflow-wrap:anywhere}

/* Configurable sections keep full-width colour fields and aligned content margins. */
.configured-section{max-width:none;margin-inline:0;background:var(--section-background);color:var(--section-text);padding-top:var(--section-top);padding-bottom:var(--section-bottom);padding-inline:max(var(--gutter),calc((100% - var(--section-width))/2 + var(--gutter)))}
.desserts.configured-section .product-grid{grid-template-columns:repeat(var(--product-columns),minmax(0,1fr))}
.contact.configured-section .contact-placeholder{background:transparent;color:inherit;outline:1px solid currentColor;outline-offset:-1px}.contact.configured-section .contact-placeholder small{color:inherit}
.contact.configured-section[data-position=right]>:first-child{order:2}.contact.configured-section[data-position=right]>.contact-links{order:1}
.contact.configured-section[data-position=stack]{grid-template-columns:1fr}.contact.configured-section[data-position=stack]>.contact-links{width:100%}
.site-footer.configured-section[data-position=center]{justify-content:center;text-align:center}.site-footer.configured-section[data-position=center] .business-contact{margin-left:0}.site-footer.configured-section[data-position=center] #footer-description{flex-basis:100%;max-width:none}.site-footer.configured-section[data-position=center] .business-contact{flex-basis:100%}
.site-footer.configured-section[data-position=right]{flex-direction:row-reverse;text-align:right}.site-footer.configured-section[data-position=right] .business-contact{margin-left:0;margin-right:auto}
.site-footer.configured-section a:hover{color:inherit}.site-footer.configured-section a:focus-visible{outline-color:currentColor}
@media(max-width:1000px){.desserts.configured-section .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.configured-section{padding-top:min(var(--section-top),64px);padding-bottom:min(var(--section-bottom),64px)}.contact.configured-section{grid-template-columns:1fr}.contact.configured-section[data-position=right]>:first-child,.contact.configured-section[data-position=right]>.contact-links{order:initial}}
@media(max-width:480px){.desserts.configured-section .product-grid{grid-template-columns:1fr}}

.contact.configured-section .contact-placeholder{outline:none;background:color-mix(in srgb,var(--section-text) 6%,var(--section-background))}.desserts.configured-section .category-filters button{background:color-mix(in srgb,var(--section-text) 6%,var(--section-background));color:var(--section-text)}.desserts.configured-section .category-filters button[aria-pressed=true]{background:var(--section-text);color:var(--section-background)}
