*{box-sizing:border-box} :root{--paper:#f2eadb;--sand:#e9deca;--ink:#38251b;--brown:#5b3928;--gold:#c6a24b;--blue:#425d70;--green:#536b51;--line:#cbbba4;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 var(--sans)}a{color:inherit;text-decoration:none}.site-header{height:82px;padding:0 max(24px,6vw);display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{display:flex;gap:12px;align-items:center}.brand-mark{border:1px solid var(--gold);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font:18px var(--serif)}.brand strong,.brand small{display:block}.brand strong{font-size:11px;letter-spacing:.16em}.brand small{font-size:10px;color:#806a55}.main-nav{display:flex;gap:27px;align-items:center;font-size:12px}.main-nav a.active{border-bottom:1px solid var(--gold)}.nav-order,.button{background:var(--brown);color:var(--paper);padding:12px 18px}.menu-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;padding:0;background:transparent;border:1px solid var(--line);color:var(--brown);font-size:23px;line-height:1;cursor:pointer;position:relative;z-index:22}.hero{padding:75px 9vw;display:grid;grid-template-columns:1fr .9fr;gap:8vw;align-items:center;min-height:570px}.eyebrow,.section-index{font-size:9px;letter-spacing:.2em;font-weight:700;color:#876b4d}.hero h1,.page-intro h1{font:500 clamp(48px,6vw,82px)/1.08 var(--serif);letter-spacing:-.04em;margin:20px 0}.hero h1 em,h2 em,.page-intro em{color:#79553c}.hero-intro,.page-intro p:last-child{max-width:520px;color:#76624f;line-height:1.9}.hero-actions{display:flex;gap:25px;align-items:center;margin-top:30px}.text-link{font-size:11px;border-bottom:1px solid var(--gold);padding-bottom:5px}.hero-visual,.item-photo,.poster-slot,.bulk-photo{padding:10px;background:var(--sand);box-shadow:inset 4px 4px 12px #b9a98f55,inset -4px -4px 12px #fff9}.hero-visual{height:420px;position:relative}.hero-visual img,.item-photo img,.poster-slot img,.bulk-photo img{width:100%;height:100%;object-fit:cover}.image-placeholder{height:100%;display:grid;place-content:center;text-align:center;background:#e6d9c2;color:#62442e;padding:20px}.image-placeholder span,.image-placeholder small{display:block;font-size:9px;letter-spacing:.13em}.image-placeholder strong{font:24px var(--serif);margin:12px}.photo-caption{position:absolute;bottom:22px;left:25px;color:white;font-size:9px;letter-spacing:.15em}.intro-band{padding:40px 9vw;background:var(--sand);display:flex;gap:40px;align-items:center;justify-content:space-between}.intro-band p{font:20px/1.5 var(--serif);max-width:620px}.section-pad{padding:85px 9vw}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.section-heading h2,.visit-strip h2{font:45px/1.1 var(--serif)}.category-list{border-top:1px solid var(--line)}.category-row{display:grid;grid-template-columns:60px 1fr 30px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.category-row h3{font:24px var(--serif);margin:0}.category-row p{font-size:12px;color:#806a55;margin:2px 0}.category-no{color:var(--gold);font-size:11px}.row-arrow{font-size:20px}.poster-feature{background:var(--brown);color:var(--paper);padding:70px 9vw;display:grid;grid-template-columns:1fr .8fr;gap:8vw;align-items:center}.poster-feature h2{font:52px/1.1 var(--serif)}.poster-feature p{color:#e1d4c1;max-width:500px}.poster-slot{height:280px}.visit-strip{padding:70px 9vw;display:flex;justify-content:space-between;align-items:center}.site-footer{padding:35px 6vw;background:#e7ddcc;display:flex;gap:30px;align-items:center;flex-wrap:wrap}.footer-links{margin-left:auto;display:flex;gap:20px;font-size:11px}.copyright{font-size:10px}.inner-page{max-width:1120px;margin:auto;padding:65px 25px 90px}.page-intro{margin-bottom:45px}.page-intro h1{font-size:65px}.order-panel,.enquiry-form{max-width:700px;margin:auto;background:var(--sand);padding:45px;box-shadow:8px 8px 20px #6d4b301c,-7px -7px 18px #fff9}.order-panel h2,.enquiry-form h2,.contact-details h2,.item-copy h2{font:45px/1.1 var(--serif)}.reveal-button{width:100%;padding:17px 0;margin-top:25px;background:none;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;cursor:pointer}.platform-link{display:flex;gap:15px;padding:18px 0;border-bottom:1px solid var(--line);align-items:center}.platform-link span:nth-child(2){flex:1}.platform-link strong,.platform-link small{display:block}.platform-link small,.small-note{font-size:10px;color:#806a55}.item-editorial{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;margin:70px 0}.item-editorial.reverse .item-photo{order:2}.item-photo{height:340px}.bulk-layout,.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:start}.bulk-photo{height:250px;margin-bottom:25px}.enquiry-form label{display:block;font-size:11px;margin:15px 0}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{display:block;width:100%;padding:12px;margin-top:6px;background:#f7f0e4;border:1px solid var(--line)}.enquiry-form button{width:100%;border:0;margin-top:15px;cursor:pointer}.map-frame{padding:9px;background:var(--sand)}.map-frame iframe{width:100%;height:430px;border:0}.map-directions{display:block;padding:12px;font-size:11px}.contact-line{padding:15px 0;border-bottom:1px solid var(--line)}.contact-actions,.social-row{display:flex;gap:15px;flex-wrap:wrap;margin:20px 0}.social-row{font-size:11px}.legal-copy{max-width:700px}.legal-copy h2{font:24px var(--serif);margin-top:32px}.legal-copy p{font-size:13px;color:#76624f;line-height:1.9}@media(max-width:760px){.site-header{height:72px;padding:0 22px}.menu-toggle{display:flex}.main-nav{display:none;position:absolute;top:71px;left:0;right:0;background:var(--paper);padding:14px 22px 20px;z-index:21;flex-direction:column;align-items:stretch;box-shadow:0 14px 24px #38251b22;border:1px solid var(--line)}.main-nav.nav-open{display:flex}.hero,.poster-feature,.bulk-layout,.contact-layout,.item-editorial{grid-template-columns:1fr}.hero{padding:50px 22px;gap:30px}.hero-visual{height:320px}.intro-band,.visit-strip{padding:35px 22px;display:block}.section-pad{padding:60px 22px}.section-heading{display:block}.poster-feature{padding:55px 22px}.inner-page{padding:50px 20px}.page-intro h1{font-size:48px}.item-editorial{margin:50px 0}.item-editorial.reverse .item-photo{order:0}.item-photo{height:280px}.order-panel,.enquiry-form{padding:25px}.footer-links{margin-left:0}.map-frame iframe{height:330px}}
/* Cake booking and design manager */
.cake-catalog-section{margin:55px 0 85px}
.cake-design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.cake-design-card{background:var(--sand);padding:10px;box-shadow:inset 3px 3px 9px #b9a98f44,inset -3px -3px 9px #fff8}
.cake-design-image{height:225px;background:#e6d9c2}
.cake-design-image img{width:100%;height:100%;object-fit:cover}
.cake-design-info{padding:17px 10px 12px}
.cake-design-info h3{font:25px var(--serif);margin:0 0 7px}
.cake-design-info p{font-size:12px;color:#806a55;min-height:42px}
.cake-design-info>strong{font-size:14px;color:var(--brown)}
.cake-design-info small{font-size:10px;font-weight:400;color:#806a55}
.cake-booking-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start}
.cake-booking-copy h2,.admin-design-list h2{font:45px/1.1 var(--serif)}
.cake-policy{margin:30px 0;padding:22px;border-left:2px solid var(--gold);background:#e9deca}
.cake-policy strong{font:22px var(--serif)}
.cake-policy p{font-size:12px;color:#76624f}
.cake-form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.cake-price-summary{margin:25px 0;padding:20px;background:#e1d4c1;border:1px solid var(--line)}
.cake-price-summary>div{display:flex;justify-content:space-between;gap:15px;padding:6px 0}
.cake-price-summary span{font-size:12px;color:#76624f}
.cake-price-summary strong{font-size:18px}
.cake-price-summary small{display:block;margin-top:8px;color:#806a55;font-size:10px}
.cake-admin-entry{margin:70px 0 10px;padding:20px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}
.cake-admin-entry span{font-size:11px;color:#806a55}
.admin-warning{padding:20px 24px;background:#eee1c8;border-left:3px solid var(--gold);margin-bottom:35px}
.admin-warning p{font-size:12px;color:#76624f;margin-bottom:0}
.admin-cake-layout{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start}
.admin-form-actions{display:flex;gap:12px;flex-wrap:wrap}
.button-secondary{background:transparent;color:var(--brown);border:1px solid var(--brown)}
.admin-design-list{padding:25px;background:var(--sand)}
.admin-design-row{display:grid;grid-template-columns:64px 1fr auto auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.admin-thumb{width:64px;height:64px;background:#e6d9c2;display:grid;place-items:center;font:20px var(--serif);overflow:hidden}
.admin-thumb img{width:100%;height:100%;object-fit:cover}
.admin-design-meta strong,.admin-design-meta span,.admin-design-meta small{display:block}
.admin-design-meta strong{font:17px var(--serif)}
.admin-design-meta span{font-size:11px}
.admin-design-meta small{font-size:10px;color:#806a55}
.admin-design-row button{border:0;background:transparent;border-bottom:1px solid var(--gold);font:11px var(--sans);padding:5px;cursor:pointer}
@media(max-width:760px){.cake-design-grid{grid-template-columns:1fr 1fr}.cake-booking-layout,.admin-cake-layout{grid-template-columns:1fr;gap:35px}.cake-design-image{height:160px}.cake-form-row{grid-template-columns:1fr}.admin-design-row{grid-template-columns:54px 1fr auto}.admin-thumb{width:54px;height:54px}.admin-design-row button:last-child{grid-column:3}.cake-admin-entry{display:block}.cake-admin-entry a{display:inline-block;margin-top:10px}}
@media(max-width:420px){.cake-design-grid{grid-template-columns:1fr}.cake-design-image{height:220px}}

/* Editorial photography fallback and accessibility polish */
img{display:block}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.hero-visual img,.item-photo img,.poster-slot img,.bulk-photo img{transition:none}
.image-placeholder{background:linear-gradient(145deg,#e9deca,#d9c8ad)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Final mobile gutters: keep every major block comfortably inside the viewport. */
@media(max-width:760px){.hero{padding-left:22px;padding-right:22px}.intro-band,.section-pad,.poster-feature,.visit-strip{padding-left:22px;padding-right:22px}.inner-page{padding-left:22px;padding-right:22px}.site-footer{padding-left:22px;padding-right:22px}.hero-visual,.item-photo,.poster-slot,.bulk-photo{min-width:0}.main-nav a{padding:11px 0}.main-nav .nav-order{padding:12px 15px;margin-top:8px;text-align:center}}

/* Final layout correction: editorial photo fallback labels must never sit over loaded photos or duplicate the card heading. */
.item-photo{position:relative;min-width:0;overflow:hidden}
.item-photo>img{display:block;width:100%;height:100%;object-fit:cover}
.item-photo>.image-placeholder{display:none}
.item-photo>.image-placeholder[style*="display: grid"]{display:grid!important}
.item-photo>img[style*="display: none"]+.image-placeholder{display:grid!important}
.item-editorial>div{min-width:0}
.item-editorial h2{position:relative;z-index:1;line-height:1.12;margin:18px 0}
.item-editorial p{max-width:48ch}
@media(max-width:760px){
 .inner-page{padding-left:22px;padding-right:22px}
 .item-editorial{gap:22px;margin:44px 0 58px}
 .item-photo{height:260px;margin:0}
 .item-editorial h2{font-size:clamp(32px,9vw,42px);margin:15px 0}
 .item-editorial p{font-size:14px;line-height:1.8}
 .section-index{display:block;line-height:1.6}
}

/* Final production polish: image placeholders only appear when the image fails. */
.hero-visual,.poster-slot,.bulk-photo,.item-photo{position:relative;overflow:hidden;min-width:0}
.hero-visual>img,.poster-slot>img,.bulk-photo>img,.item-photo>img{display:block;width:100%;height:100%;object-fit:cover}
.hero-visual>.image-placeholder,.poster-slot>.image-placeholder,.bulk-photo>.image-placeholder,.item-photo>.image-placeholder{display:none}
.hero-visual>img[style*="display: none"]+.image-placeholder,.poster-slot>img[style*="display: none"]+.image-placeholder,.bulk-photo>img[style*="display: none"]+.image-placeholder,.item-photo>img[style*="display: none"]+.image-placeholder{display:grid!important;position:absolute;inset:10px}
.poster-slot{height:280px}
.poster-slot>img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px)}
.poster-feature{min-width:0;overflow:hidden}.poster-feature>*{min-width:0}
@media(max-width:760px){
 .poster-feature{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;padding:46px 22px}
 .poster-feature h2{font-size:clamp(36px,10vw,48px);margin:16px 0}
 .poster-slot{height:230px;width:100%}
 .visit-strip{display:grid;grid-template-columns:1fr;gap:18px;padding:48px 22px}
 .visit-strip h2{font-size:clamp(38px,10vw,48px);margin:12px 0}
 .visit-strip>p{margin:0;line-height:1.9}
 .site-footer{gap:18px}.site-footer>p{flex-basis:100%;margin:0}
 .footer-links{width:100%;margin:0;flex-wrap:wrap}
}
.reveal-ready .reveal-on-scroll{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.reveal-ready .reveal-on-scroll.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal-ready .reveal-on-scroll{opacity:1;transform:none;transition:none}}

/* Client preview: never show placeholder copy or empty image-slot labels. */
.image-placeholder{display:none!important}
.hero-visual,.poster-slot,.bulk-photo,.item-photo{background:var(--sand);overflow:hidden}
.hero-visual>img,.poster-slot>img,.bulk-photo>img,.item-photo>img{display:block;width:100%;height:100%;object-fit:cover}
