/* Our Story only: a static, lightweight road trip through the original photos. */
.happiness-section.happiness-journey{position:relative;padding:5rem 0 1.5rem;background:radial-gradient(ellipse at 50% 53%,#e9efdf72,transparent 65%),#fcfbf7;overflow:hidden}
.happiness-journey>.page-width{width:92%;max-width:1440px}
.happiness-journey .section-heading{align-items:center;margin-bottom:1.25rem;position:relative;z-index:2}
.happiness-journey .eyebrow{letter-spacing:.14em;font-size:.65rem}
.happiness-journey h2{font-size:clamp(2.9rem,5.6vw,5.8rem);font-weight:900;letter-spacing:-.065em;line-height:1.04}
.happiness-journey h2 span{font:inherit}
.happiness-journey .section-heading .button{white-space:nowrap;background:transparent;border-color:#183e32;padding:1rem 1.5rem;font-size:.75rem}
.happiness-map{isolation:isolate;position:relative;margin:0 -1rem;min-width:0}
.happiness-road{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.happiness-road path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.happiness-road-shadow{stroke:#41533c20;stroke-width:78;transform:translateY(5px)}
.happiness-road-edge{stroke:#fffef9;stroke-width:75}
.happiness-road-surface{stroke:#a4aaa4;stroke-width:66}
.happiness-road-marks{stroke:#fffef9;stroke-width:2.6;stroke-dasharray:15 18}
.happiness-road-mobile{display:none}
.happiness-stops{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6.5rem 2.3rem;padding:3rem 1.5rem 2rem;align-items:start}
.happiness-stops>.happiness-photo{display:block;position:relative;min-width:0;width:100%;padding:.55rem .55rem 1.8rem;border:1px solid #e7e6dc;border-radius:3px;background:#fffefb;box-shadow:2px 10px 16px -5px #3042213b;transform:rotate(var(--happiness-angle));transition:transform .2s ease,box-shadow .2s ease;color:var(--green);cursor:pointer;overflow:visible;touch-action:pan-y pinch-zoom}
.happiness-photo>img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:#fff;pointer-events:none}
.happiness-photo-caption{position:absolute;bottom:.55rem;left:.75rem;right:.75rem;display:flex;justify-content:space-between;align-items:center;font-size:.65rem;color:#47604e;pointer-events:none}
.happiness-photo-caption>span:last-child{font-size:1rem}
.happiness-tree{position:absolute;z-index:1;object-fit:contain;width:7.5%;height:auto;pointer-events:none}
.happiness-tree-1{left:-2%;top:0}.happiness-tree-2{left:25%;top:0;width:9%}.happiness-tree-3{left:56%;top:-2%}.happiness-tree-4{right:-2%;top:10%}
.happiness-tree-5{left:20%;top:41%;width:8%}.happiness-tree-6{left:-3%;top:46%;width:8%}.happiness-tree-7{right:0;top:45%;width:8%}.happiness-tree-8{left:47%;bottom:-1%;width:8%}.happiness-tree-9{left:-1%;bottom:3%;width:8%}
.happiness-pin{position:absolute;z-index:3;color:#87a238;width:2.9rem;height:3.9rem;pointer-events:none}
.happiness-pin>svg{width:100%;height:100%;display:block}
.happiness-pin-1{left:0;top:18%}.happiness-pin-2{left:32%;top:43%}.happiness-pin-3{left:70%;top:17%}.happiness-pin-4{right:7%;top:45%;color:#638d41}.happiness-pin-5{left:45%;top:70%}
.happiness-car{position:absolute;left:74%;top:43%;width:10%;height:auto;z-index:3;pointer-events:none;transform:rotate(9deg)}
.happiness-location-invite{display:flex;align-items:center;justify-content:center;gap:1.5rem;position:relative;margin:1.5rem auto 0;min-height:12rem;text-decoration:none;max-width:1200px;padding:1.5rem 1rem 2rem;border-radius:50%;color:#10412b}
.happiness-location-invite:before{content:'';position:absolute;inset:0 -15vw -1rem;background:#eaf0e271;clip-path:polygon(0 12%,16% 19%,30% 10%,46% 15%,65% 8%,85% 20%,100% 9%,100% 97%,78% 91%,60% 98%,38% 90%,15% 95%,0 87%);z-index:0;pointer-events:none}
.happiness-invite-words{position:relative;padding:.65rem 1.5rem 1.25rem;border-radius:3rem 2rem 3.5rem 2.5rem;background:#dceecb;box-shadow:-1rem .6rem 0 #dceecb,1rem -.2rem 0 #dceecb;font-family:'Comic Sans MS','Segoe Print',cursive;font-size:clamp(1.45rem,3.4vw,3.15rem);font-weight:700;line-height:1.35;text-align:center;z-index:1}
.happiness-invite-words>span{background:#477931;color:#fffef7;padding:.02em .22em;border-radius:1em;white-space:nowrap}
.happiness-invite-words>svg{position:absolute;width:39%;height:1rem;bottom:.3rem;left:35%}
.happiness-smile-pin{width:7rem;height:auto;transform:rotate(-13deg);z-index:1;flex-shrink:0}
.happiness-doodle-cup{width:7rem;height:auto;transform:rotate(8deg);z-index:1;flex-shrink:0}
#story-locations{padding-top:3.5rem;padding-bottom:5.5rem;scroll-margin-top:2rem}
#story-locations .locator-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
#story-locations .locator-card{background:#e0edda;border:1px solid #d4e2cd;border-radius:.55rem;padding:1.5rem 1.75rem;box-shadow:none;min-height:0}
#story-locations .locator-card h3{font-size:1.1rem;line-height:1.4;margin:.7rem 0}
#story-locations .locator-address{min-height:0;font-size:.85rem;line-height:1.65}
#story-locations .locator-phone,#story-locations .text-link{font-size:.8rem}
#story-locations .tag{border:0;background:transparent}
@media(hover:hover) and (pointer:fine){.happiness-photo:hover{transform:translateY(-5px) rotate(0) scale(1.025);box-shadow:2px 15px 22px -5px #3042214d;z-index:4}.happiness-location-invite:hover .happiness-invite-words{background:#d1e6bd}}
.happiness-photo.is-touch-pressed{box-shadow:2px 12px 22px -5px #30422155;z-index:4}
@media(prefers-reduced-motion:no-preference){.happiness-photo.is-touch-pressed{transform:translateY(-4px) rotate(0) scale(1.025)}}
@media(max-width:1050px){.happiness-stops{grid-template-columns:repeat(2,minmax(0,1fr));gap:5.5rem 3.5rem;padding:2.5rem 1.5rem 1rem}.happiness-road-desktop{display:none}.happiness-road-mobile{display:block}.happiness-tree{width:13%}.happiness-tree-2{left:43%;top:1%;width:15%}.happiness-tree-3{left:42%;top:24%}.happiness-tree-4{right:-2%;top:48%;width:15%}.happiness-tree-5{left:42%;top:49%;width:16%}.happiness-tree-6{top:72%;width:15%}.happiness-tree-7{right:0;top:25%;width:15%}.happiness-tree-8{left:42%;bottom:24%;width:14%}.happiness-tree-9{bottom:0;width:14%}.happiness-car{left:71%;top:24%;width:19%;transform:rotate(6deg)}.happiness-pin-1{left:0;top:8%}.happiness-pin-2{left:42%;top:22.5%}.happiness-pin-3{left:46%;top:48%}.happiness-pin-4{right:0;top:71%}.happiness-pin-5{left:1%;top:48%}.happiness-location-invite{margin-top:1.5rem;gap:.7rem}.happiness-smile-pin,.happiness-doodle-cup{width:5rem}}
@media(max-width:700px){.happiness-journey{padding:3rem 0 1rem}.happiness-journey>.page-width{width:90%}.happiness-journey .section-heading{display:flex;align-items:flex-start;gap:.8rem;flex-wrap:wrap}.happiness-journey .eyebrow{font-size:.56rem;letter-spacing:.1em}.happiness-journey h2{font-size:clamp(2.5rem,10vw,4rem)}.happiness-journey .section-heading .button{padding:.7rem 1rem;font-size:.65rem;min-height:2.75rem}.happiness-map{margin:0 -.35rem}.happiness-stops{gap:4.3rem 1.6rem;padding:2.1rem .6rem 1rem}.happiness-stops>.happiness-photo{padding:.35rem .35rem 1.45rem}.happiness-photo-caption{bottom:.35rem;left:.5rem;right:.5rem;font-size:.55rem}.happiness-photo-caption>span:last-child{font-size:.85rem}.happiness-pin{width:1.9rem;height:2.6rem}.happiness-road-shadow{stroke-width:61}.happiness-road-edge{stroke-width:58}.happiness-road-surface{stroke-width:50}.happiness-road-marks{stroke-width:2.6;stroke-dasharray:13 15}.happiness-location-invite{padding:.75rem .25rem 1.5rem;min-height:9rem;margin-top:1rem;gap:.5rem}.happiness-invite-words{font-size:clamp(1rem,4.2vw,1.6rem);padding:.65rem .45rem 1.2rem;box-shadow:-.3rem .3rem 0 #dceecb,.3rem -.1rem 0 #dceecb;border-radius:1rem;flex:1}.happiness-smile-pin{width:2.7rem}.happiness-doodle-cup{width:2.5rem}.happiness-invite-words>svg{width:45%;left:29%}#story-locations{padding-top:2rem;padding-bottom:3rem}#story-locations .locator-grid{grid-template-columns:1fr;gap:.8rem}#story-locations .locator-card{padding:1.25rem}#story-locations .locator-card h3{font-size:1rem}#story-locations .wide-intro{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){.happiness-photo{transition:none}.happiness-photo.is-touch-pressed{outline:3px solid #638d41;outline-offset:3px}}
