/* eMemorybox — like-for-like rebuild of the Wix site. Reference: site/_reference/home-*.png */

@font-face { font-family: "Spinnaker"; src: url("../fonts/Spinnaker-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Dancing Script"; src: url("../fonts/DancingScript-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("../fonts/CormorantGaramond-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("../fonts/CormorantGaramond-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("../fonts/CormorantGaramond-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Nunito Sans"; src: url("../fonts/NunitoSans.woff2") format("woff2"); font-weight: 200 1000; font-style: normal; font-display: swap; }

:root {
  --spinnaker: "Spinnaker", "Trebuchet MS", sans-serif;
  --avenir: "Avenir Next", "Avenir", "Nunito Sans", "Segoe UI", sans-serif;   /* Wix used Avenir Light (paid) — see signoff-list.md #2 */
  --helvetica: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --script: "Dancing Script", "Brush Script MT", cursive;
  --garamond: "Cormorant Garamond", Garamond, "Times New Roman", serif;

  --heading: #993500;      /* burnt orange headings */
  --body: #8a4622;         /* paragraph brown */
  --body-light: #a05222;   /* lighter brown */
  --nav: #9d897c;          /* menu item grey-brown */
  --purple: #b45ad4;       /* accent purple: borders, icons, app copy */
  --yellow: #fced94;       /* app banner / download boxes / active menu pill */
  --yellow-border: #e9db89;
  --pill: #f1e1f4;         /* download button fill */
  --header-bg: #f8f7f8;
  --page-bg: #f8f4f1;
  --box-border: #eaeaea;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--page-bg); color: var(--body); font-family: var(--spinnaker); font-size: 20px; line-height: 1.4; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
.wrap { width: 100%; max-width: 980px; margin: 0 auto; padding: 0 10px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- header ---------- */
.site-header { background: var(--header-bg); padding: 52px 0 30px; }
.header-top { display: grid; grid-template-columns: 142px 1fr 142px; align-items: center; gap: 24px; }
.logo img { width: 142px; height: 144px; }
.tagline { margin: 0 auto; max-width: 330px; text-align: center; font-family: var(--spinnaker); font-size: 20px; line-height: 1.05; letter-spacing: 0.22em; text-transform: uppercase; color: var(--body-light); }
.header-icons { display: flex; justify-content: flex-end; align-items: center; gap: 18px; min-height: 62px; }

.menu-toggle { display: none; }
.site-nav { margin-top: 40px; }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: space-between; gap: 14px; }
.site-nav a { display: block; padding: 3px 18px; border: 1px solid var(--purple); border-radius: 999px; font: 300 15px/1.4 var(--avenir); color: var(--nav); text-decoration: none; text-transform: uppercase; white-space: nowrap; letter-spacing: 0.01em; }
.site-nav a:hover { color: #000; }
.site-nav a[aria-current="page"] { background: var(--yellow); color: #000; border-color: var(--yellow); }
.site-nav li { position: relative; }
.site-nav .sub { display: none; position: absolute; left: 0; top: 100%; z-index: 20; min-width: 230px; margin: 0; padding: 8px 0 0; flex-direction: column; gap: 0; }
.site-nav .sub li { background: var(--header-bg); }
.site-nav .sub a { border: 0; border-radius: 0; padding: 6px 18px; white-space: normal; text-transform: none; font-size: 15px; color: var(--nav); }
.site-nav .sub a:hover { background: var(--yellow); color: #000; }
.site-nav .has-sub:hover .sub, .site-nav .has-sub:focus-within .sub { display: flex; }

.app-banner { width: 624px; max-width: 100%; margin: 36px auto 0; padding: 3px 10px; background: var(--yellow); border: 2px solid var(--yellow-border); text-align: center; }
.app-banner p { margin: 0; font: 700 19px/1.3 var(--spinnaker); color: var(--purple); }
.app-links { width: 624px; max-width: 100%; margin: 14px auto 0; display: flex; justify-content: space-between; gap: 20px; }
.app-box { width: 178px; padding: 8px 10px 6px; background: var(--yellow); border: 2px solid var(--yellow-border); text-align: center; }
.app-box .btn-download { display: inline-flex; align-items: center; gap: 8px; padding: 9px 22px; background: var(--pill); border: 1px solid var(--purple); border-radius: 999px; font: 700 16px/1.2 var(--helvetica); color: #8b6755; text-decoration: none; }
.app-box .btn-download svg { width: 15px; height: 15px; }
.app-box p { margin: 6px 0 0; font: 700 19px/1.25 var(--spinnaker); color: var(--purple); }

/* ---------- main ---------- */
.home h1, .home h2 { margin: 0; text-align: center; font-family: var(--spinnaker); font-weight: 700; color: var(--heading); text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.28); }
.home h1 { padding: 34px 0 0; font-size: 59px; line-height: 1.2; }
.home h2 { font-size: 60px; line-height: 1.05; }

.media-row { display: grid; grid-template-columns: 615px 1fr; gap: 60px; align-items: start; margin-top: 44px; padding-left: 9px; }
.video-frame { position: relative; }
.video-frame video, .video-frame img { display: block; width: 100%; height: auto; border: 3px solid var(--purple); background: #000; }
.video-frame video { cursor: pointer; }
.video-frame .play { position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border: 0; border-radius: 50%; background: rgba(255,255,255,0.85); color: var(--purple); cursor: pointer; display: grid; place-items: center; }
.video-frame .play svg { width: 34px; height: 34px; margin-left: 4px; }
.video-frame.playing .play { display: none; }
.video-label { position: absolute; left: 50%; bottom: -12px; transform: translateX(-50%); padding: 2px 20px; background: var(--yellow); border: 1px solid var(--yellow-border); font: 400 18px/1.3 var(--spinnaker); color: var(--body-light); white-space: nowrap; }
.media-row .side-image { width: 243px; margin-left: auto; margin-right: 10px; }
.media-row .side-image { position: relative; width: 247px; height: 346px; border: 2px solid #dcc7e6; overflow: hidden; background: #fff; }
.slideshow .slides { list-style: none; margin: 0; padding: 0; position: relative; width: 243px; height: 342px; }
.slideshow .slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease; }
.slideshow .slide.is-active { opacity: 1; }
.slideshow .slide img { width: 243px; height: 342px; object-fit: cover; }
.slideshow .slide-prev, .slideshow .slide-next { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,0.7); color: #444; cursor: pointer; opacity: 0; transition: opacity .3s; display: grid; place-items: center; }
.slideshow .slide-prev { left: 6px; } .slideshow .slide-next { right: 6px; }
.slideshow:hover .slide-prev, .slideshow:hover .slide-next, .slideshow:focus-within .slide-prev, .slideshow:focus-within .slide-next { opacity: 1; }
.slideshow .slide-prev svg, .slideshow .slide-next svg { width: 22px; height: 22px; }
.slideshow .slide-counter { position: absolute; right: 8px; bottom: 6px; padding: 1px 6px; font: 400 12px/1.4 var(--avenir); color: #fff; background: rgba(0,0,0,0.35); border-radius: 3px; }
.lightbox { position: fixed; inset: 0; z-index: 50; display: none; place-items: center; background: rgba(0,0,0,0.85); cursor: zoom-out; }
.lightbox.open { display: grid; }
.lightbox img { max-width: 92vw; max-height: 92vh; width: auto; height: auto; box-shadow: 0 0 40px rgba(0,0,0,0.6); }

.text-box { margin: 34px 26px 0; padding: 10px 20px 10px; background: linear-gradient(#fff, #f2f2f2); border: 1px solid var(--box-border); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12); }
.text-box.intro { text-align: center; font: 400 28px/1.4 var(--avenir); color: var(--body-light); }
.text-box p { margin: 0; }

.home h2 { margin-top: 58px; }
.story-row { display: grid; grid-template-columns: 304px 1fr; gap: 41px; align-items: start; margin-top: 60px; padding: 0 20px 0 30px; }
.story-row .video-frame video, .story-row .video-frame img { border-width: 2px; }
.story-row .text-box { margin: 0; padding: 12px 8px 12px 10px; font-size: 20px; line-height: 1.4; color: var(--body); }
.story-row .text-box p + p { margin-top: 28px; }

.cta { text-align: center; margin: 60px 0 0; padding-bottom: 32px; }
.btn-outline { display: inline-block; min-width: 364px; padding: 14px 28px; background: #fff; border: 1px solid var(--purple); border-radius: 999px; font: 400 16px/1.2 var(--spinnaker); color: var(--heading); letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; }
.btn-outline:hover { background: var(--pill); }

/* ---------- footer ---------- */
.site-footer { padding: 0 0 30px; background: var(--header-bg); }
.site-footer .footer-logo { display: block; width: 151px; height: 150px; margin: 0 auto; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; margin-top: -30px; align-items: start; padding: 0 20px; }
.footer-links { margin: 0; padding-left: 20px; font: 400 18px/1.45 var(--spinnaker); color: var(--heading); }
.footer-links a { color: var(--heading); }
.footer-ico { margin-top: 30px; }
.footer-ico img { width: 103px; height: 56px; }
.footer-reg { margin: 26px 0 0; font: 400 14px/1.4 var(--spinnaker); color: rgb(65, 30, 6); }
.footer-centre { text-align: center; padding-top: 86px; }
.social { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; gap: 10px; }
.social img { width: 39px; height: 39px; }
.footer-company { margin: 26px 0 0; font: 400 14px/1.4 var(--spinnaker); color: var(--heading); }
.footer-contact { padding-top: 140px; font: 400 18px/1.45 var(--spinnaker); color: var(--heading); }
.footer-contact p { margin: 0; }
.footer-contact a { color: var(--heading); text-decoration: none; }

/* ---------- mobile ---------- */
@media (max-width: 960px) {
  .wrap { padding: 0 16px; }
  .site-header { padding: 16px 0 18px; }
  .header-top { grid-template-columns: 1fr; gap: 10px; justify-items: center; }
  .header-top .tagline { order: 3; }   /* Wix mobile: logo, then icon row, then tagline */
  .header-top .header-icons { order: 2; }
  .app-links .app-box:first-child { order: 2; }   /* Wix mobile shows the Play Store box first */
  .logo img { width: 96px; height: 97px; }
  .header-icons { width: 100%; justify-content: center; min-height: 0; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: none; border: 0; color: var(--purple); cursor: pointer; }
  .menu-toggle svg { width: 30px; height: 30px; }
  .tagline { font-size: 17px; letter-spacing: 0.2em; }
  .site-nav { margin-top: 12px; }
  .site-nav ul { display: none; flex-direction: column; gap: 8px; align-items: center; }
  .site-nav.open ul { display: flex; }
  .site-nav a { min-width: 220px; text-align: center; }
  .site-nav .sub { display: flex; position: static; min-width: 0; padding: 4px 0 0; align-items: center; gap: 4px; }
  .site-nav .sub li { background: none; }
  .site-nav .sub a { min-width: 0; font-size: 14px; }
  .app-banner { margin-top: 18px; }
  .app-links { gap: 12px; }
  .app-box { width: 50%; }
  .app-box .btn-download { padding: 8px 14px; }
  .app-box p { font-size: 16px; }

  .home h1 { font-size: 34px; padding-top: 22px; }
  .home h2 { font-size: 30px; margin-top: 60px; }
  .media-row { grid-template-columns: 1fr; gap: 0; margin: 40px -16px 0; padding: 0; }
  .media-row .side-image { display: none; }   /* hidden on the Wix mobile layout too */
  .video-frame video, .video-frame img { border-width: 2px; }
  .video-label { position: static; transform: none; display: block; margin: 18px 16px 0; text-align: center; font-size: 16px; }
  .text-box { margin: 30px 0 0; padding: 14px 18px; }
  .text-box.intro { font-size: 22px; }
  .story-row { grid-template-columns: 1fr; gap: 40px; margin-top: 30px; padding: 0; }
  .wrap { padding: 0 16px; }
  .story-row .video-frame { max-width: 320px; margin: 0 auto; }
  .story-row .text-box { font-size: 18px; }
  .cta { margin: 40px 0 30px; }
  .btn-outline { min-width: 0; width: 100%; font-size: 14px; }

  .footer-grid { grid-template-columns: 1fr; margin-top: 0; padding: 0; text-align: center; }
  .footer-contact { order: 1; padding: 0; font-size: 16px; }
  .footer-left { order: 2; }
  .footer-links { display: inline-block; text-align: left; margin-top: 14px; font-size: 16px; }
  .footer-centre { order: 3; padding-top: 10px; }
  .footer-company { margin-top: 10px; }
  .footer-ico { margin: 16px auto 0; display: flex; justify-content: center; }
  .footer-reg { margin-top: 10px; }
  .site-footer .footer-logo { order: 4; width: 90px; height: 90px; margin-top: 20px; }
}

/* ---------- simple text pages (terms, returns, privacy) ---------- */
.legal-text { max-width: 820px; margin: 30px auto 50px; padding: 24px 32px; background: linear-gradient(#fff, #f5f5f5); border: 1px solid var(--box-border); box-shadow: 0 1px 4px rgba(0,0,0,0.12); font: 400 17px/1.55 var(--spinnaker); color: var(--body); }
.legal-text h1 { margin: 0 0 20px; font: 700 34px/1.2 var(--spinnaker); color: var(--heading); text-shadow: 1px 2px 2px rgba(0,0,0,0.2); }
.legal-text h2 { margin: 28px 0 8px; font: 700 22px/1.3 var(--spinnaker); color: var(--heading); }
.legal-text p { margin: 0 0 12px; }
.legal-text a { color: var(--heading); }
@media (max-width: 960px) { .legal-text { padding: 16px; font-size: 16px; } .legal-text h1 { font-size: 26px; } }

/* ---------- inner pages: shared ---------- */
.page-title { margin: 0; padding: 60px 0 0; text-align: center; font: 700 60px/1.2 var(--spinnaker); color: var(--heading); text-transform: uppercase; text-shadow: 2px 3px 3px rgba(0,0,0,0.28); }
.btn-outline.wide { min-width: 636px; }
.cta.small { margin-top: 12px; }
.cta.small .btn-outline { min-width: 204px; padding: 12px 24px; }
.band { margin-top: 32px; height: 298px; overflow: hidden; }
.band img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- how it works ---------- */
.collage { position: relative; height: 300px; margin: 60px auto 0; width: 980px; }
.collage img { position: absolute; border: 2px solid var(--purple); background: #fff; }
.collage .c1 { left: 145px; top: 0; } .collage .c2 { left: 288px; top: 0; } .collage .c3 { left: 454px; top: 27px; } .collage .c4 { left: 601px; top: 0; } .collage .c5 { left: 778px; top: 0; }
.collage .c6 { left: 145px; top: 159px; } .collage .c7 { left: 295px; top: 206px; } .collage .c8 { left: 574px; top: 206px; } .collage .c9 { left: 769px; top: 159px; }
.hiw-intro { margin: 40px 40px 0; font: 700 25px/1.4 var(--spinnaker); color: var(--body); }
.steps { list-style: none; display: grid; grid-template-columns: repeat(3, 304px); gap: 26px; justify-content: center; margin: 56px 0 0; padding: 0; }
.steps li { border: 2px solid var(--purple); padding: 8px 18px 20px; text-align: center; }
.steps .num { display: block; font: 700 61px/1.3 var(--spinnaker); color: var(--purple); text-shadow: 1px 2px 2px rgba(0,0,0,0.2); }
.steps p { margin: 6px 0 0; font: 400 24px/1.4 var(--helvetica); color: var(--body); }
.features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 44px 0 0; }
.features > div { background: #fbf9ec; padding: 26px 20px 30px; text-align: center; min-height: 300px; }
.features h2 { margin: 0 0 20px; font: 400 22px/1.2 var(--avenir); color: var(--purple); text-transform: uppercase; letter-spacing: 0.04em; }
.features p { margin: 0; font: 400 18px/1.55 var(--spinnaker); color: var(--body-light); }
.features > div:first-child p { color: var(--heading); }
.howitworks .cta { margin-top: 44px; }
@media (max-width: 960px) {
  .page-title { font-size: 35px; padding-top: 20px; }
  .btn-outline.wide, .cta.small .btn-outline { min-width: 0; width: 100%; font-size: 13px; }
  .band { height: auto; margin-top: 30px; }
  .collage { position: static; width: auto; height: auto; margin: 26px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
  .collage img { position: static; height: 110px; width: auto; }
  .hiw-intro { margin: 30px 0 0; font-size: 21px; }
  .steps { grid-template-columns: 1fr; gap: 20px; margin-top: 30px; }
  .steps .num { font-size: 41px; }
  .features { grid-template-columns: 1fr; gap: 0; margin-top: 30px; }
  .features > div { min-height: 0; padding: 20px 16px; }
  .features h2 { font-size: 19px; margin-bottom: 8px; } .features p { font-size: 16px; }
}

/* ---------- some existing ememoryboxes ---------- */
.hero-split { position: relative; height: 446px; margin: 43px -130px 0; }
.hero-split-img { position: absolute; left: 0; top: 0; width: 782px; height: 362px; object-fit: cover; }
.hero-split-title { position: absolute; left: 458px; top: 55px; width: 730px; margin: 0; padding: 36px 40px; background: #ecdcf3; font: 700 60px/1.15 var(--spinnaker); color: var(--heading); text-transform: uppercase; text-shadow: 2px 3px 3px rgba(0,0,0,0.28); }
.examples h2 { margin: 0 0 6px; padding-left: 20px; font: 400 40px/1.2 var(--spinnaker); color: var(--body); text-shadow: 2px 3px 3px rgba(0,0,0,0.22); }
.examples .lead { margin: 0 0 22px; padding-left: 20px; font: 400 20px/1.3 var(--spinnaker); color: var(--body); }
.example-link img { margin-left: 29px; border: 3px solid var(--purple); }
.existing { margin-top: 30px; }
.body-copy { margin: 0 0 14px; padding-left: 20px; font: 400 20px/1.4 var(--avenir); color: var(--body); max-width: 980px; }
.portraits { list-style: none; margin: 0 0 20px; padding: 0 0 0 29px; display: flex; gap: 57px; }
.portraits a { display: block; width: 144px; text-align: center; text-decoration: none; font: 400 18px/1.4 var(--spinnaker); color: var(--body); }
.portraits img { width: 106px; height: 147px; margin: 0 auto 10px; border: 3px solid var(--purple); }
.testimonial { margin: 10px 0 30px 23px; padding: 0; font: 700 28px/1.3 var(--script); color: var(--purple); }
.testimonial p { margin: 0; }
.testimonial footer { margin: 4px 0 0 20px; }
@media (max-width: 960px) {
  .hero-split { height: auto; margin: 20px -16px 0; }
  .hero-split-img { position: static; width: 100%; height: auto; }
  .hero-split-title { position: static; width: auto; padding: 20px 16px; font-size: 30px; }
  .examples h2 { font-size: 28px; padding-left: 0; } .examples .lead, .body-copy { padding-left: 0; font-size: 17px; }
  .example-link img { margin-left: 0; }
  .portraits { padding: 0; gap: 12px; justify-content: space-between; }
  .portraits a { width: 31%; font-size: 15px; }
  .testimonial { margin-left: 0; font-size: 24px; }
}

/* ---------- ememorykeys ---------- */
.keys-title { padding-top: 8px; font-size: 60px; line-height: 1.15; }
.keys-title small { display: block; margin-top: 44px; font-size: 27px; line-height: 1.2; }
.keys-lead { margin: 22px 26px 0; text-align: center; font: 700 27px/1.45 var(--spinnaker); color: var(--body); }
.keys-hint { margin: 8px 0 0; text-align: center; font: 400 18px/1.3 var(--spinnaker); color: var(--body); }
.key-grid { list-style: none; margin: 34px 0 0; padding: 0 22px 0 32px; display: flex; justify-content: space-between; align-items: flex-end; }
.key-grid a { display: block; text-align: center; text-decoration: none; }
.key-grid img { display: block; margin: 0 auto 22px; border: 3px solid var(--purple); }
.key-grid span { font: 400 20px/1.3 var(--spinnaker); color: var(--body); text-decoration: underline; }
.keys .cta.small { margin-top: 20px; }
@media (max-width: 960px) {
  .keys-title { font-size: 34px; } .keys-title small { margin-top: 16px; font-size: 18px; }
  .keys-lead { margin: 14px 0 0; font-size: 19px; } .keys-hint { font-size: 15px; }
  .key-grid { flex-wrap: wrap; gap: 20px; padding: 0; justify-content: center; margin-top: 20px; }
  .key-grid li { width: 44%; } .key-grid img { width: 100%; height: auto; margin-bottom: 8px; } .key-grid span { font-size: 15px; }
}

/* ---------- product info pages (plaque, memory box, bear, eddie) ---------- */
.cluster { position: relative; width: 980px; margin: 0 auto; }
.cluster img, .cluster .video-frame { position: absolute; }
.cluster img { border: 3px solid var(--purple); }
.cluster-plaque { height: 620px; }
.cluster-plaque .k1 { left: 331px; top: 26px; } .cluster-plaque .k2 { left: 192px; top: 108px; } .cluster-plaque .k3 { left: 609px; top: 108px; } .cluster-plaque .k4 { left: 415px; top: 340px; }
.cluster-box { height: 626px; }
.cluster-box .k1 { left: 190px; top: 9px; } .cluster-box .k2 { left: 146px; top: 311px; } .cluster-box .k3 { left: 606px; top: 311px; }
.cluster-bear { height: 616px; }
.cluster-bear img, .cluster-bear .video-frame video { border-color: #8b6755; }
.cluster-bear .k1 { left: 9px; top: 114px; } .cluster-bear .k2 { left: 340px; top: 112px; width: 302px; } .cluster-bear .k3 { left: 672px; top: 114px; }
.cluster-eddie { height: 587px; }
.cluster-eddie .k1 { left: 276px; top: 25px; }
.video-frame.portrait video { width: 100%; aspect-ratio: 302 / 397; object-fit: cover; border-width: 3px; }
.product-text { padding: 20px 28px 40px; }
.product-text h1 { margin: 0 0 24px; font: 700 60px/1.2 var(--spinnaker); color: var(--heading); text-transform: uppercase; text-shadow: 2px 3px 3px rgba(0,0,0,0.28); max-width: 934px; }
.product-text p { margin: 0 0 24px; max-width: 925px; font: 400 20px/1.25 var(--spinnaker); color: var(--body); }
.product-text .cta.left { text-align: left; margin: 10px 0 0; }
.btn-outline.narrow { min-width: 128px; padding: 10px 26px; }
.product-text.with-aside { display: grid; grid-template-columns: 1fr 200px; gap: 40px; align-items: start; }
.product-text .aside-img { margin-top: 90px; border: 0; }
.product-text .aside-img.video-frame { margin-top: 0; width: 200px; }
@media (max-width: 960px) {
  .cluster { position: static; width: auto; height: auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 20px; }
  .cluster img, .cluster .video-frame { position: static; max-width: 45%; height: auto; }
  .cluster-box .k1, .cluster-eddie .k1 { max-width: 100%; }
  .cluster-bear .k2 { width: 45%; }
  .product-text { padding: 20px 0 30px; } .product-text h1 { font-size: 32px; } .product-text p { font-size: 17px; }
  .product-text.with-aside { grid-template-columns: 1fr; } .product-text .aside-img { margin: 0 auto; }
  .btn-outline.narrow { width: auto; min-width: 128px; }
}

/* ---------- veterans ---------- */
.poppy-bg { background: url("../img/veterans/poppy-field.webp") center top / 1400px auto no-repeat, var(--page-bg); padding-bottom: 40px; }
.vet-title { padding-top: 40px; }
.vet-intro { margin: 26px 0 0; text-align: center; font: 400 20px/1.5 var(--avenir); color: var(--body); }
.vet-sub { margin: 26px 0 0; text-align: center; font: 700 36px/1.2 var(--spinnaker); color: var(--heading); text-transform: uppercase; text-shadow: 2px 3px 3px rgba(0,0,0,0.28); }
.vet-video { width: 518px; margin: 8px auto 0; }
.vet-video video { border: 3px solid #7a5ad4; }
.vet-box { margin: 10px 0 0; padding: 36px 40px 36px; font: 700 20px/1.35 var(--spinnaker); color: var(--body); }
.vet-plaque { display: block; width: 291px; height: 291px; margin: 18px auto 0; border: 3px solid var(--purple); }
.vet-box.small { width: 600px; margin: 12px auto 0; padding: 16px 20px; text-align: center; font-weight: 700; font-size: 18px; }
.veterans .cta { margin-top: 24px; }
.veterans .cta .btn-outline { background: #bfc6ee; border-color: #bfc6ee; color: #2b2b6b; letter-spacing: 0.08em; }
@media (max-width: 960px) { .poppy-bg { background-size: cover; } .vet-video { width: 100%; } .vet-box { padding: 16px; font-size: 17px; } .vet-box.small { width: auto; } .vet-sub { font-size: 26px; } .vet-plaque { width: 220px; height: 220px; } }

/* ---------- contact ---------- */
.contact-title { padding-top: 60px; font-size: 50px; }
.contact-form { width: 616px; max-width: 100%; margin: 60px auto 0; padding: 16px 8px 40px; background: #fff; }
.contact-form input, .contact-form textarea, .schools-form input, .schools-form textarea { display: block; width: 100%; margin: 0 0 8px; padding: 10px 24px; border: 0; background: #f3e4f6; font: 400 17px/1.4 var(--avenir); color: #333; }
.contact-form textarea { min-height: 128px; resize: vertical; }
.contact-form button { display: block; width: 186px; margin: 0 auto; padding: 14px 20px; border: 0; background: #e8dfc9; font: 400 17px/1.2 var(--avenir); color: #333; cursor: pointer; }
.contact-form button:hover, .schools-form button:hover { filter: brightness(0.95); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form-status { margin: 12px 0 0; text-align: center; font: 400 16px/1.4 var(--avenir); color: var(--body); min-height: 1.4em; }
.form-status.error { color: #b00020; }
.contact-details { display: flex; justify-content: space-between; margin: 30px 0 40px; font: 400 24px/1.4 var(--spinnaker); color: #3a2a1a; }
.contact-details p { margin: 0; } .contact-details .right { text-align: right; color: var(--heading); }
.contact-details a { text-decoration: none; }
@media (max-width: 960px) { .contact-title { font-size: 30px; padding-top: 24px; } .contact-form { margin-top: 24px; } .contact-details { flex-direction: column; gap: 16px; font-size: 20px; } .contact-details .right { text-align: left; } }

/* ---------- lachhiman gurung (no site header/footer on Wix) ---------- */
.lg { padding: 90px 0 40px; }
.lg-title { margin: 0 0 40px; font: 400 56px/1.2 var(--garamond); color: #4a2a0a; }
.lg-title span { font-family: "Noto Sans Devanagari", "Kohinoor Devanagari", "Mangal", var(--garamond); }
.lg-infobox { display: grid; grid-template-columns: 257px 1fr 144px; gap: 30px 30px; align-items: center; padding: 0 20px; }
.lg-profile { border: 3px solid var(--purple); }
.lg-infobox dl { margin: 0; font: 400 16px/1.4 var(--avenir); color: #333; }
.lg-infobox dt { font-weight: 700; } .lg-infobox dd { margin: 0 0 2px; }
.lg-infobox a { color: inherit; text-decoration: none; }
.lg-story { margin: 60px -60px 0; padding: 40px 90px 50px; background: #faf6f1; font: 400 16px/1.35 var(--avenir); color: #333; }
.lg-story h2 { margin: 0 0 30px; font: 400 38px/1.2 var(--garamond); color: #4a2a0a; }
.lg-story p { margin: 0 0 22px; }
.lg-story a { color: inherit; text-decoration: none; }
.lg-photos { display: flex; justify-content: space-around; margin-top: 30px; }
.lg-photos img { border: 3px solid var(--purple); }
.lg-support { margin: 28px 20px 0; padding: 16px 20px; background: linear-gradient(#fcf5b0, #f4e58a); border: 1px solid #d9c96e; text-align: center; font: 400 47px/1.35 var(--garamond); }
.lg-support a { color: var(--heading); }
.lg-home { margin: 20px 0 0; text-align: center; }
.lg-home a { display: inline-block; width: 144px; padding: 8px 0; background: var(--purple); color: #fff; font: 400 18px/1.4 var(--avenir); text-decoration: none; text-transform: uppercase; }
@media (max-width: 960px) { .lg { padding-top: 30px; } .lg-title { font-size: 32px; } .lg-infobox { grid-template-columns: 1fr; justify-items: center; padding: 0; } .lg-story { margin: 30px -16px 0; padding: 24px 16px; } .lg-story h2 { font-size: 28px; } .lg-support { margin: 20px 0 0; font-size: 26px; } }

/* ---------- schools ---------- */
.schools-title { padding-top: 40px; }
.schools-top { display: grid; grid-template-columns: 1fr 340px; gap: 60px; align-items: center; margin-top: 40px; padding: 0 20px 0 10px; }
.schools-points { margin: 0; padding: 12px 20px; font: 700 25px/1.4 var(--spinnaker); color: var(--body); }
.schools-teddy { border-radius: 50%; border: 6px solid #f7ea86; }
.schools-video { margin: 40px auto 0; width: 962px; max-width: 100%; }
.schools-video video { border: 5px solid #f7ea86; }
.schools-video.second { width: 849px; }
.schools-caption { margin: 8px 0 0; text-align: center; font: 400 23px/1.3 var(--spinnaker); color: var(--body); }
.schools-caption.small { font-size: 15px; }
.schools-copy { margin: 30px 0 0; padding: 0 30px; font: 400 19px/1.35 var(--spinnaker); color: var(--body); }
.schools-copy p { margin: 0 0 20px; } .schools-copy .big { font-size: 25px; }
.schools-infographic { display: block; margin: 40px auto 0; }
.btn-yellow { display: inline-block; min-width: 364px; padding: 12px 20px; background: #f7ea86; border: 1px solid #d9c96e; font: 400 20px/1.2 var(--garamond); color: var(--heading); text-transform: uppercase; text-decoration: underline; }
.promise { margin: 30px 0 0; padding: 20px 20px 24px; background: #8bc34a; border: 3px solid #4a7a1a; text-align: center; font-family: var(--garamond); color: #1a3a0a; letter-spacing: 0.06em; }
.promise h2 { margin: 0 0 8px; font: 600 26px/1.2 var(--garamond); }
.promise p { margin: 0; font: 400 21px/1.5 var(--garamond); }
.schools-contact { margin-top: 30px; background: #2a1ee0; color: #fff; }
.schools-contact-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 40px; padding: 40px 30px; }
.schools-contact-info h2 { margin: 0 0 14px; font: 400 30px/1.25 var(--avenir); color: #fff; }
.schools-contact-info .email { display: flex; align-items: center; gap: 10px; margin: 0 0 60px; font: 400 16px/1.4 var(--avenir); }
.schools-contact-info .email svg { width: 28px; height: 28px; } .schools-contact-info a { color: #fff; }
.schools-social { list-style: none; margin: 0 0 10px; padding: 0; display: flex; gap: 6px; }
.schools-contact-info .company { margin: 0 0 40px; font: 400 14px/1.5 var(--avenir); }
.schools-contact-info .ico { margin: 0; font: 400 18px/1.4 var(--avenir); }
.schools-form label { display: block; margin: 0 0 10px; font: 400 13px/1.4 var(--avenir); color: #fff; }
.schools-form input, .schools-form textarea { margin: 4px 0 0; padding: 8px 10px; background: #fff; border: 1px solid #ccc; font-size: 15px; }
.schools-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.schools-form button { display: block; width: 100%; padding: 12px; border: 0; background: #2a1ee0; border: 1px solid #fff; color: #fff; font: 400 15px/1.2 var(--avenir); cursor: pointer; }
.schools-contact .form-status { color: #fff; }
@media (max-width: 960px) {
  .schools-title { font-size: 30px; } .schools-top { grid-template-columns: 1fr; gap: 20px; padding: 0; margin-top: 24px; } .schools-points { font-size: 19px; } .schools-teddy { width: 220px; height: auto; margin: 0 auto; }
  .schools-video, .schools-video.second { width: 100%; margin-top: 24px; } .schools-copy { padding: 0; font-size: 17px; } .schools-caption { font-size: 17px; }
  .btn-yellow { min-width: 0; width: 100%; font-size: 16px; } .promise h2 { font-size: 22px; } .promise p { font-size: 17px; }
  .schools-contact-grid { grid-template-columns: 1fr; padding: 24px 16px; } .schools-form .row2 { grid-template-columns: 1fr; gap: 0; }
}

/* ---------- shop ---------- */
.shop-title { padding-top: 40px; }
.shop-notice { width: 493px; max-width: 100%; margin: 20px auto 0; padding: 14px 20px; background: #fdf3a6; border: 1px solid #e9db89; text-align: center; font: 400 21px/1.45 var(--avenir); color: var(--body-light); text-transform: uppercase; }
.shop-notice p { margin: 0; }
.product-list { list-style: none; margin: 16px auto 0; padding: 0; width: 493px; max-width: 100%; }
.product-card { margin: 0 0 40px; padding: 20px 20px 24px; background: #fdf7d9; border: 1px solid #f0e8b8; }
.product-card .card-img { display: block; position: relative; width: 453px; height: 453px; max-width: 100%; }
.product-card .card-img img { width: 100%; height: 100%; object-fit: cover; }
.product-card .card-img .hover { position: absolute; inset: 0; opacity: 0; transition: opacity .3s; }
.product-card .card-img:hover .hover { opacity: 1; }
.product-card h2 { margin: 14px 0 4px; font: 400 16px/1.3 var(--avenir); color: #6f5441; }
.product-card h2 a { color: inherit; text-decoration: none; }
.price { margin: 0; font: 400 16px/1.4 var(--avenir); color: #6f5441; }
.price .lbl { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.price .was s { color: #6f5441; margin-right: 6px; }
.shipping { margin: 8px 0 0; font: 400 12px/1.4 var(--avenir); color: #6f5441; }
.btn-buy { display: block; width: 100%; margin-top: 12px; padding: 9px 12px; background: #a3562b; border: 0; text-align: center; font: 400 16px/1.4 var(--avenir); color: #f8f4f1; text-decoration: none; cursor: pointer; }
.btn-buy:hover { background: #8b4622; }
@media (max-width: 960px) { .shop-title { font-size: 34px; padding-top: 20px; } .shop-notice { font-size: 17px; } .product-card { padding: 12px; } .product-card .card-img { width: 100%; height: auto; aspect-ratio: 1; } }

/* ---------- product page ---------- */
.product-wrap { padding-top: 60px; padding-bottom: 40px; }
.crumbs { margin: 0 0 60px; padding: 0 46px; font: 400 16px/1.4 var(--avenir); color: var(--body); }
.crumbs a { color: inherit; text-decoration: none; }
.product-grid { display: grid; grid-template-columns: 498px 1fr; gap: 36px; padding: 0 46px; align-items: start; }
.gallery .gslides { list-style: none; margin: 0; padding: 0; position: relative; }
.gallery .gslide { display: none; }
.gallery .gslide.is-active { display: block; }
.gallery .gslide img, .gallery .gslide video { display: block; width: 498px; max-width: 100%; height: auto; border: 1px solid #eee; }
.gallery .gthumbs { list-style: none; margin: 12px 0 0; padding: 0; display: flex; gap: 8px; }
.gallery .gthumbs button { position: relative; padding: 0; border: 1px solid #ddd; background: none; cursor: pointer; }
.gallery .gthumbs button.is-active { border-color: var(--body); }
.gallery .gthumbs img { display: block; width: 43px; height: 43px; object-fit: cover; }
.gallery .play-badge { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 12px; text-shadow: 0 0 3px #000; }
.buy-box h1 { margin: 0 0 40px; font: 400 26px/1.3 var(--avenir); color: var(--body); }
.buy-box .price { font-size: 16px; }
.buy-box .shipping { margin: 14px 0 26px; font-size: 14px; color: var(--body); }
.buy-box .opt, .buy-box .qty { display: block; margin: 0 0 22px; font: 400 14px/1.4 var(--avenir); color: var(--body); }
.buy-box select { display: block; margin-top: 6px; width: 200px; padding: 8px 10px; border: 1px solid #ccc; background: #fff; font: 400 15px/1.3 var(--avenir); color: #444; }
.qty-ctl { display: inline-flex; margin-top: 6px; border: 1px solid #ccc; background: #fff; }
.qty-ctl button { width: 28px; border: 0; background: none; font-size: 18px; color: #999; cursor: pointer; }
.qty-ctl input { width: 34px; border: 0; text-align: center; font: 400 15px/1.3 var(--avenir); -moz-appearance: textfield; }
.qty-ctl input::-webkit-inner-spin-button, .qty-ctl input::-webkit-outer-spin-button { -webkit-appearance: none; }
.buy-box .btn-buy { padding: 10px 12px; margin-top: 0; }
.buy-note { margin: 10px 0 0; font: 400 13px/1.4 var(--avenir); color: var(--body); }
.buy-note a { color: inherit; }
.share { list-style: none; margin: 30px 0 0; padding: 0; display: flex; gap: 18px; }
.share a { display: inline-block; width: 22px; height: 22px; color: #3a2a1a; }
.share svg { width: 22px; height: 22px; }
.share li:nth-child(1) a { color: #1877f2; } .share li:nth-child(2) a { color: #e60023; } .share li:nth-child(3) a { color: #25d366; }
.product-desc { padding: 30px 46px 0; max-width: 590px; font: 400 16px/1.5 var(--avenir); color: var(--body); }
.product-desc p { margin: 0 0 6px; }
@media (max-width: 960px) { .product-wrap { padding-top: 20px; } .crumbs { margin-bottom: 20px; padding: 0; font-size: 14px; } .product-grid { grid-template-columns: 1fr; gap: 20px; padding: 0; } .gallery .gslide img, .gallery .gslide video { width: 100%; } .buy-box h1 { margin-bottom: 16px; font-size: 22px; } .product-desc { padding: 20px 0 0; } }

/* ---------- blog ---------- */
.blog-wrap { padding: 40px 20px 30px; background: #faf6f1; }
.post-meta { margin: 0 0 30px; font: 400 14px/1.4 var(--avenir); }
.all-posts { color: var(--body-light); text-decoration: none; }
.post-list { list-style: none; margin: 0; padding: 0; }
.post-card { margin: 0 0 30px; background: #fff; border: 1px solid #eee; }
.post-card .card-body { padding: 30px 36px 30px; }
.post-card.has-cover { display: grid; grid-template-columns: 1fr 1fr; }
.post-card .card-cover img { width: 100%; height: 100%; object-fit: cover; }
.byline { display: grid; grid-template-columns: 32px 1fr; column-gap: 10px; align-items: center; margin: 0 0 18px; font: 400 12px/1.4 var(--avenir); color: var(--body); }
.avatar { grid-row: span 2; width: 32px; height: 32px; border-radius: 50%; background: #ccc; }
.post-card h2, .post h1 { margin: 0 0 16px; font: 400 32px/1.2 var(--garamond); color: #3a2a1a; }
.post-card h2 a { color: inherit; text-decoration: none; }
.excerpt, .post p { margin: 0 0 18px; font: 400 17px/1.55 var(--avenir); color: var(--body); }
.post { background: #fff; border: 1px solid #eee; padding: 40px 60px; max-width: 940px; margin: 0 auto; }
.post h1 { font-size: 40px; }
.post h2 { margin: 30px 0 12px; font: 400 26px/1.25 var(--garamond); color: #3a2a1a; }
.post-cover { margin: 0 0 24px; }
@media (max-width: 960px) { .blog-wrap { padding: 20px 12px; } .post-card.has-cover { grid-template-columns: 1fr; } .post-card .card-body, .post { padding: 20px; } .post h1 { font-size: 28px; } }
.post figure { margin: 24px 0; } .post figure img { width: 100%; height: auto; } .post figcaption, .post .caption { margin: 6px 0 0; font: 400 14px/1.4 var(--avenir); color: #777; text-align: center; }
.post ul { margin: 0 0 18px; padding-left: 28px; font: 400 17px/1.55 var(--avenir); color: var(--body); } .post li { margin: 0 0 4px; }

/* ---------- school pages (Kings Meadow / Hubert's) ---------- */
.school-page { font-family: var(--avenir); }
.sband { padding: 30px 0 40px; }
.sband .wrap { text-align: center; }
.stext { margin: 0 auto 18px; max-width: 900px; color: #f9fb87; }
.stext p, .stext h1, .stext h2, .stext h3, .stext h4, .stext h5, .stext h6 { margin: 0 0 6px; }
.stext.t-xl { font: 400 40px/1.3 var(--garamond); } .stext.t-lg { font: 700 30px/1.35 var(--avenir); } .stext.t-md { font: 400 18px/1.45 var(--avenir); } .stext.t-sm { font: 400 16px/1.5 var(--avenir); }
.stext a { color: inherit; }
.sbox { display: inline-block; max-width: 900px; margin: 0 auto 24px; padding: 20px 24px; background: #fff; text-align: center; }
.sbox .stext { color: var(--body); }
.simg { margin: 0 auto 24px; display: flex; justify-content: center; } .simg img { height: auto; border: 3px solid #f9fb87; }
.sline { width: 31px; margin: 0 auto 18px; border: 0; border-top: 3px solid #f9fb87; }
.sgallery { list-style: none; margin: 0 auto 30px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; max-width: 1200px; }
.sgallery li { position: relative; } .sgallery img { width: 100%; height: 180px; object-fit: cover; display: block; background: #fff; }
.sgallery .g-video video { width: 100%; height: 180px; object-fit: cover; background: #000; }
.sgallery .cap { display: block; margin-top: 4px; font: 400 13px/1.3 var(--avenir); color: #f9fb87; }
.svideo { margin: 0 auto 24px; max-width: 900px; } .svideo video { width: 100%; height: auto; background: #000; } .svideo .cap { margin: 6px 0 0; color: #f9fb87; font: 400 14px/1.4 var(--avenir); }
.sbtn { margin: 20px 0 0; } .sbtn a { display: inline-block; min-width: 142px; padding: 8px 20px; background: var(--purple); color: #fff; font: 400 16px/1.4 var(--avenir); text-decoration: none; text-transform: uppercase; }
.lightbox { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; background: rgba(0,0,0,0.9); }
.lightbox img { max-width: 92vw; max-height: 86vh; width: auto; height: auto; }
.lightbox button { position: absolute; border: 0; background: rgba(255,255,255,0.15); color: #fff; font-size: 34px; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; }
.lb-close { top: 16px; right: 16px; } .lb-prev { left: 16px; top: 50%; } .lb-next { right: 16px; top: 50%; }
.lb-cap { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; color: #fff; font: 400 15px/1.4 var(--avenir); }
@media (max-width: 960px) { .sband { padding: 20px 0 24px; } .stext.t-xl { font-size: 28px; } .stext.t-lg { font-size: 22px; } .sgallery { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 4px; } .sgallery img, .sgallery .g-video video { height: 110px; } .simg img { max-width: 100% !important; } }

/* ---------- password gate ---------- */
.gate-main { min-height: 100vh; display: grid; place-items: center; background: var(--page-bg); padding: 20px; }
.gate-box { width: 420px; max-width: 100%; padding: 30px 28px; background: #fff; border: 1px solid var(--box-border); text-align: center; box-shadow: 0 2px 10px rgba(0,0,0,0.08); }
.gate-box img { margin: 0 auto 10px; }
.gate-box h1 { margin: 0 0 6px; font: 700 24px/1.3 var(--spinnaker); color: var(--heading); }
.gate-box p { margin: 0 0 16px; font: 400 16px/1.4 var(--avenir); color: var(--body); }
.gate-form input { width: 100%; padding: 10px 14px; border: 1px solid #ccc; font: 400 16px/1.4 var(--avenir); margin-bottom: 10px; }
.gate-form button { width: 100%; padding: 10px; border: 0; background: var(--purple); color: #fff; font: 400 16px/1.4 var(--avenir); cursor: pointer; }
.gate-home a { color: var(--heading); }
