
/* Hallmark · theme: user-specified Field notebook · shape: editorial index · copy: verbatim · v2.0.0 */
/* Pre-emit critique: hierarchy and restraint prioritized; required content, fonts, palettes and abstract hero art follow the supplied mockup brief. */
/* User brief overrides optional scaffold, log, word-budget and imagery conventions: exactly four deliverable files, inline styles and SVG, no image requests. */

:root{--paper:#FBF7F0;--surface:#FBF7F0;--ink:#2B2A28;--accent:#355E3B;--accent-ink:#FBF7F0;--signal:#D9822B;--signal-ink:#2B2A28;--muted:#2B2A28;--rule:#2B2A2840;--focus:#355E3B;--link-hover:#355E3B;--button-hover:#2B2A28;--icon:#355E3B;--tint:#355E3B0A;--orange-tint:#D9822B12;--shadow:0 14px 30px #2B2A2810;--font-head:'Fraunces',serif;--font-body:'Work Sans',sans-serif;--control-radius:2px;--panel-radius:3px}

*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{font-family:var(--font-body);font-size:17px;line-height:1.55;background:var(--paper);color:var(--ink)}::selection{background:var(--accent);color:var(--accent-ink)}html{scrollbar-color:var(--accent) var(--paper)}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--link-hover)}button,summary{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}svg{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0;overflow-wrap:break-word;min-width:0}h1,h2,h3{font-family:var(--font-head);line-height:1.2;font-weight:600}h1{font-size:36px}h2{font-size:28px}h3{font-size:20px}p{margin-top:12px}h1,h2{letter-spacing:-.025em}a,button,summary{touch-action:manipulation}.container{width:100%;max-width:1320px;margin-inline:auto;padding-inline:40px}.header{position:relative;z-index:2}.header-inner{min-height:100px;display:flex;align-items:center;gap:32px}.brand{display:inline-flex;gap:11px;align-items:center;font-family:var(--font-head);font-weight:600;text-decoration:none;line-height:1.2;flex-shrink:0}.brand svg{width:34px;flex-shrink:0}.desktop-nav{margin-left:auto;display:flex;align-items:center;gap:26px;font-size:15px}.desktop-nav a{text-decoration:none;white-space:nowrap}.desktop-nav a:hover{text-decoration:underline}.button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:11px 22px;border:1px solid var(--accent);border-radius:var(--control-radius);background:var(--accent);color:var(--accent-ink);font-family:var(--font-body);font-size:16px;font-weight:600;text-decoration:none;white-space:nowrap}.button:hover{background:var(--button-hover);color:var(--accent-ink);border-color:var(--button-hover)}.button:active{background:var(--accent);border-color:var(--ink)}.button.secondary{background:var(--surface);color:var(--ink);border-color:var(--rule)}.button.secondary:hover{border-color:var(--ink);background:var(--paper)}.header-action{font-size:15px;padding-inline:18px}.mobile-menu{display:none;margin-left:auto}.mobile-menu summary{list-style:none;min-height:44px;display:flex;align-items:center;padding:8px 12px;border:1px solid var(--rule);border-radius:var(--control-radius);background:var(--surface);cursor:pointer;font-size:15px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary:hover{border-color:var(--ink)}.mobile-menu nav{position:absolute;right:20px;left:20px;top:calc(100% - 4px);padding:20px;background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow);display:grid;gap:18px}.mobile-menu nav a{min-height:32px;display:flex;align-items:center}.hero{position:relative}.hero-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center;padding-block:54px 68px}.hero p{font-size:18px;margin-top:22px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero-art{margin:0;min-width:0}.section{padding-block:68px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;min-height:44px;padding:8px 17px;border:1px solid var(--rule);border-radius:var(--control-radius);background:var(--surface);font-size:15px}.chip.selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}.badge{display:inline-block;padding:4px 10px;background:var(--signal);color:var(--signal-ink);font-size:13px;line-height:1.4;font-weight:600;white-space:nowrap;border-radius:var(--control-radius)}.product-name{font-family:var(--font-head);font-size:19px;font-weight:600}.review{font-size:15px;white-space:nowrap}.small-label{font-size:13px;color:var(--muted)}.templates-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.template-card{min-width:0;padding:28px;display:flex;flex-direction:column;align-items:flex-start;background:var(--surface);border:1px solid var(--rule);border-radius:var(--panel-radius)}.template-card p{margin-bottom:24px}.template-card .button{margin-top:auto;min-height:44px;padding:8px 18px}.template-icon{width:35px;height:40px;margin-bottom:24px;color:var(--accent)}.booking-intro{margin-bottom:30px}.booking-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.booking-card{padding:28px;border:1px solid var(--rule);border-radius:var(--panel-radius);background:var(--surface)}.booking-icon{width:40px;height:40px;margin-bottom:24px;color:var(--icon)}.guides-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.guide-card{padding:26px 0;border-top:2px solid var(--accent)}.guide-card h3{font-size:21px}.footer{padding-block:44px 28px;border-top:1px solid var(--rule)}.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:32px}.footer-nav{display:flex;flex-wrap:wrap;gap:15px 26px;font-size:15px}.footer-meta{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:32px;font-size:14px}.footer p{margin-top:24px;font-size:14px;color:var(--muted)}.skip{position:absolute;top:-100px;left:20px;padding:12px;background:var(--ink);color:var(--paper);z-index:10}.skip:focus{top:12px}.art-paper{fill:var(--surface)}.art-accent{fill:var(--accent)}.art-signal{fill:var(--signal)}.art-ink{fill:var(--ink)}.art-bg{fill:var(--paper)}.art-stroke{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.art-line{stroke:var(--rule);stroke-width:2;fill:none}.art-accent-line{stroke:var(--accent);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1100px){.header-inner{gap:20px}.desktop-nav{gap:18px;font-size:14px}.header-action{display:none}.hero-inner{gap:30px}.container{padding-inline:28px}.footer-top{flex-direction:column}}
@media(max-width:760px){h1{font-size:26px}h2{font-size:22px}h3{font-size:19px}.container{padding-inline:20px}.header-inner{min-height:82px;gap:14px}.brand{font-size:17px}.brand svg{width:29px}.desktop-nav{display:none}.mobile-menu{display:block}.hero-inner{grid-template-columns:minmax(0,1fr);padding-block:34px 42px;gap:30px}.hero p{font-size:17px;margin-top:17px}.actions{margin-top:23px;gap:10px}.actions .button{padding-inline:17px}.hero-art{justify-self:center;width:100%}.section{padding-block:42px}.section-heading{display:block;margin-bottom:24px}.templates-grid,.booking-grid,.guides-grid{grid-template-columns:minmax(0,1fr);gap:16px}.template-card,.booking-card{padding:24px}.template-icon{margin-bottom:18px}.template-card p{margin-bottom:20px}.footer{padding-block:34px 24px}.footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px}.footer-meta{gap:16px 22px}.footer p{font-size:14px}.guide-card{padding:24px 0}.chips{gap:8px}.chip{padding-inline:14px}}

.header-inner{border-bottom:1px solid var(--ink)}.brand{font-size:21px}.hero-inner{display:block;text-align:center;padding-block:52px 12px}.hero h1{font-weight:600}.hero p{margin-top:18px}.hero .actions{justify-content:center;margin-top:24px}.hero-art{margin-top:22px;color:var(--ink)}.art-on-accent{fill:none;stroke:var(--paper);stroke-width:2}.section{padding-top:30px}.section-heading{display:block;position:relative;border-bottom:1px solid var(--ink);margin-bottom:30px;padding-top:16px}.section-heading h2{display:inline-block;padding:16px 26px 17px;border:1px solid var(--ink);border-bottom:0;background:var(--paper);border-radius:10px 10px 0 0;position:relative;bottom:-1px;font-weight:600}.templates-section .section-heading h2{background:var(--orange-tint)}.booking-section .section-heading h2{background:var(--tint)}.ranking-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.rank-card{padding:26px 28px;background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:var(--panel-radius)}.rank-card.top-pick{border:2px solid var(--accent);padding:25px 27px;background:var(--tint)}.rank-card-head{display:flex;align-items:center;gap:22px;min-height:68px}.rank-block{display:flex;flex-direction:column;align-items:center;min-width:35px}.rank{font:600 36px/1.1 var(--font-head);font-variant-numeric:tabular-nums}.product-block{flex:1}.product-block h3{font-size:24px;font-weight:600}.rank-card dl{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--rule)}.rank-card dl>div{display:grid;grid-template-columns:75px minmax(0,1fr);gap:14px;margin-top:8px}.rank-card dt{font-size:14px;padding-top:2px}.rank-card dd{margin:0;font-size:16px}.chips .selected{background:var(--accent);border-color:var(--accent)}.templates-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.template-card{position:relative;padding-left:88px;border:0;border-bottom:1px solid var(--rule);background:var(--orange-tint);border-radius:0}.template-icon{position:absolute;top:28px;left:28px}.template-card h3{font-size:24px;font-weight:600}.booking-grid{gap:0;background:var(--tint);border:1px solid var(--rule)}.booking-card{border:0;border-right:1px solid var(--rule);border-radius:0;background:none;padding:32px}.booking-card:last-child{border-right:0}.booking-card h3{font-weight:600;font-size:24px}.guide-card{border-color:var(--signal);border-top-width:3px}.guide-card h3{font-weight:600;font-size:24px}.guides-section{padding-bottom:54px}.footer{background:var(--tint)}
@media(max-width:760px){.brand{font-size:17px}.hero-inner{padding-block:30px 10px}.hero-art{margin-inline:-20px;width:calc(100% + 40px)}.section{padding-top:18px;padding-bottom:28px}.section-heading h2{padding:14px 16px 15px}.section-heading{padding-top:0;margin-bottom:24px}.ranking-cards,.templates-grid{grid-template-columns:minmax(0,1fr)}.rank-card{padding:22px}.rank-card.top-pick{padding:21px}.rank-card-head{gap:14px;flex-wrap:wrap}.rank-card-head .badge{margin-left:auto}.product-block h3{font-size:23px}.rank{font-size:32px}.rank-card dl>div{grid-template-columns:64px minmax(0,1fr)}.template-card{padding:24px 24px 24px 76px}.template-card h3,.booking-card h3,.guide-card h3{font-size:21px}.template-icon{left:22px;top:24px;width:30px}.booking-card{border-right:0;border-bottom:1px solid var(--rule);padding:26px}.booking-card:last-child{border-bottom:0}.footer-nav{font-size:15px}}

@media(min-width:761px) and (max-width:1100px){.templates-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Motion layer shared by both themes (appended after the theme). Timing, easing, lift and colours are tokens in each theme's :root.
   Every movement sits behind prefers-reduced-motion: no-preference, so a reader who asks for less motion gets none. */
/* the card photo zooms inside its own frame: a clip on the revealed card itself makes Chrome report a layout shift when the reveal ends */
.hero-art,.photo,.lm-ph{overflow:hidden}.lm-ph{display:block}
@media(prefers-reduced-motion:no-preference){.rv{opacity:0}}
.progress{position:fixed;top:0;left:0;right:0;z-index:20;height:var(--bar-h);background:var(--bar-c);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
main a:not(.btn){text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}main a:not(.btn):hover{text-decoration-color:currentColor}
@media print{.rv{opacity:1}.progress{display:none}}
@media (prefers-reduced-motion:no-preference){
html{scroll-behavior:smooth}
.hero-art img,.photo img{animation:hero-in var(--hero-dur) var(--ease) both}
a{transition:color .25s ease,text-decoration-color .25s ease}
.btn{transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .16s var(--ease)}.btn:active{transform:scale(.97)}
.links a{position:relative}.links a:hover{text-decoration:none}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:var(--ul-h);background:var(--ul-c);transform:scaleX(0);transform-origin:100% 50%;transition:transform var(--ul-dur) var(--ease)}
.links a:hover::after,.links a:focus-visible::after{transform:scaleX(1);transform-origin:0 50%}
.lm{transition:transform var(--card-dur) var(--ease),box-shadow var(--card-dur) var(--ease),border-color .2s ease}
.lm img{transition:transform var(--zoom-dur) var(--ease)}
.lm:focus-visible{transform:var(--lift);box-shadow:var(--lift-shadow)}
details.menu[open] nav{animation:menu-in .22s var(--ease) both;transform-origin:100% 0}
.faq details[open]>p{animation:faq-in .4s var(--ease) both}
}
@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
.lm:hover{transform:var(--lift);box-shadow:var(--lift-shadow)}.lm:hover img{transform:scale(var(--zoom))}
}
@keyframes hero-in{from{transform:scale(var(--hero-zoom))}to{transform:none}}
@keyframes menu-in{from{opacity:0;transform:translateY(-6px) scale(.98)}}
@keyframes faq-in{from{opacity:0;transform:translateY(-4px)}}


:root{--hero-dur:1.6s;--hero-zoom:1.06;--ease:cubic-bezier(.2,.65,.3,1);--rv-dur:650;--rv-rise:16;--rv-step:65;--card-dur:260ms;--zoom-dur:650ms;--zoom:1.045;--lift:none;--lift-shadow:0 10px 25px #2B2A2814;--bar-h:3px;--bar-c:var(--accent)}
img{display:block;width:100%;height:auto}h1,h2,h3,.hero h1,.section-heading h2,.product-block h3,.template-card h3,.booking-card h3,.guide-card h3{font-weight:600}
.brand{font-weight:600}.rank{font-weight:600}.hero-art{overflow:hidden;border-radius:var(--panel-radius);border:1px solid var(--rule);margin-top:32px}.hero-art img{aspect-ratio:3/1;height:auto;object-fit:cover}.hero-inner{padding-bottom:18px}
.photo{overflow:hidden;display:block}.photo img{aspect-ratio:16/10;height:auto;object-fit:cover}.template-card{padding:0;border:1px solid var(--rule);border-radius:var(--panel-radius);display:block}.template-card>a,.guide-card>a{display:block;text-decoration:none}.card-copy{padding:24px}.template-card h3{font-size:24px}.template-card .card-link{display:inline-block;margin-top:18px;text-decoration:underline;font-size:15px}
.guide-card{padding:0 0 24px;border:1px solid var(--rule);border-top:3px solid var(--signal)}.guide-card h3{padding:24px 24px 0}.booking-photo{margin-bottom:24px;border:1px solid var(--rule)}.booking-photo img{aspect-ratio:4/1;height:auto;object-fit:cover}.booking-link{margin-top:24px}
.product-block{min-width:0}.rank-card{min-width:0;box-shadow:none}.rank-card dd{font-size:17px}.rank-card-head{flex-wrap:wrap}.review{white-space:normal}.rank-card:focus-within,.template-card:focus-within,.guide-card:focus-within{border-color:var(--accent)}
.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.selected:hover{color:var(--paper)}.chip:disabled{opacity:1}.filter-empty{margin:24px 0}.filter-empty[hidden],[hidden]{display:none!important}.page-main{padding-block:48px 72px;min-height:50vh}.page-main .section-heading{margin-top:30px}.facts{padding-left:24px;margin-block:28px}.facts li{padding-block:12px;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}.source{font-size:14px;margin-left:8px}.category{margin-top:16px}.stub-anchor{display:block;scroll-margin-top:24px}.footer .brand{font-size:21px}
@media(hover:hover){.rank-card:hover,.template-card:hover,.guide-card:hover{border-color:var(--accent)}}
@media(prefers-reduced-motion:no-preference){
.rank-card,.template-card,.guide-card{transition:border-color .22s ease,box-shadow .3s ease}.rank-card:hover,.rank-card:focus-within,.template-card:hover,.template-card:focus-within,.guide-card:hover,.guide-card:focus-within{box-shadow:var(--lift-shadow)}
.template-card img,.guide-card img{animation:none;transition:transform var(--zoom-dur) var(--ease)}.template-card:focus-within img,.guide-card:focus-within img{transform:scale(var(--zoom))}
.button,.chip{transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .14s ease}.button:active,.chip:active{transform:scale(.98)}.top-pick.seen{animation:pick-glow 2.2s ease-out both}
@keyframes pick-glow{0%,100%{box-shadow:0 0 0 0 #355E3B00}45%{box-shadow:0 0 0 5px #355E3B20,0 5px 22px #355E3B16}}
}
@media(prefers-reduced-motion:no-preference) and (hover:hover){.template-card:hover img,.guide-card:hover img{transform:scale(var(--zoom))}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1}.progress{display:none}}
@media(max-width:760px){.hero-art{margin-inline:0;width:100%}.hero-art img{aspect-ratio:3/2;height:auto}.template-card{padding:0}.template-card h3{font-size:21px}.booking-photo img{aspect-ratio:3/2;height:auto}.page-main{padding-block:30px 48px}.footer .brand{font-size:17px}}
.lede{font-size:19px;margin-block:20px 32px}.prose{margin-block:36px}.prose h2{margin-block:36px 18px}.prose h3{margin-block:28px 14px}.prose p,.prose ul,.prose ol{margin-block:18px}.prose li{margin-block:10px}.prose ul,.prose ol{padding-left:26px}.faq{margin-block:40px}.faq h2{margin-bottom:20px}.faq details{border-top:1px solid var(--rule);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--rule)}.faq summary{cursor:pointer;font-weight:600;overflow-wrap:anywhere}.faq p{margin-top:18px}.paper{margin-block:28px 40px;border:1px solid var(--ink);border-top:5px solid var(--accent);padding:36px;background:var(--surface);box-shadow:5px 5px 0 var(--orange-tint)}.paper p{margin-block:18px;white-space:pre-wrap}.paper h3{font-family:var(--font-body);font-size:15px;letter-spacing:.05em;margin-block:32px 16px}.verdict{padding:26px;border-left:4px solid var(--accent);background:var(--tint);margin-block:32px;font-weight:500}.page-photo{margin:0 0 32px}.page-photo img{aspect-ratio:4/1;height:auto;object-fit:cover}.section-intro{margin-bottom:26px}.section-intro p{margin-block:16px}.guide-card .card-copy h3{padding:0}.guide-card .card-link{display:inline-block;margin-top:18px;text-decoration:underline}.guide-card{padding-bottom:0}.button{white-space:normal;text-align:center;overflow-wrap:anywhere}.card-copy a{overflow-wrap:anywhere}.contact-mail{margin-block:32px}main,section,article,.card-copy,.hero-copy{min-width:0}li,a,label{overflow-wrap:anywhere}.copy-status{display:inline-block;margin:0}.template-actions{align-items:center}.footer-nav,.footer-meta{min-width:0}
@media(max-width:760px){.page-photo img{aspect-ratio:3/2;height:auto}.paper{padding:22px}.lede{font-size:17px}.brand{flex-shrink:1;min-width:0}.mobile-menu{flex-shrink:0}.section-heading h2{overflow-wrap:anywhere}.template-card{padding:0}}
