:root{
  --ink:#2a1420;
  --cream:#fbe9ef;
  --accent:#d6395f;
  --accent-2:#f28c3f;
  --accent-3:#2fb4a6;
  --grey:#7a5e6a;
  --border:#f0d7e0;
  font-family: 'Poppins', 'Helvetica Neue', Arial, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  background:var(--cream);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}

/* ---------- Header ---------- */
header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 40px;
  border-bottom:1px solid var(--border);
  position:relative;
}
.logo{
  font-size:26px;
  font-weight:700;
  letter-spacing:-0.02em;
}
.logo span{color:var(--accent);}
nav.main-nav{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:center;
  justify-content:flex-end;
  margin-left:auto;
}
nav.main-nav a{
  font-size:14px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:6px 0;
  border-bottom:2px solid transparent;
  transition:border-color .15s ease;
  white-space:nowrap;
}
nav.main-nav a:hover{border-color:var(--accent);}
nav.main-nav a.active{border-color:var(--accent);}
.header-right{display:flex;gap:20px;align-items:center;font-size:13px;font-weight:600;text-transform:uppercase;margin-left:24px;}

@media (max-width:820px){
  header{padding:14px 20px;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  height:80vh;
  min-height:460px;
  overflow:hidden;
  background-size:cover;
  background-position:center;
}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1s ease;
}
.hero-slide.active{opacity:1;}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.35) 100%);
}
.hero-content{
  position:absolute;
  left:0;right:0;bottom:60px;
  text-align:center;
  color:#fff;
  z-index:2;
}
.hero-content h1{
  font-size:44px;
  font-weight:700;
  margin-bottom:22px;
  text-shadow:0 2px 12px rgba(0,0,0,.25);
}
.btn-solid{
  display:inline-block;
  background:var(--accent);
  color:#fff;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:13px;
  padding:14px 32px;
  border-radius:2px;
  transition:background .15s ease;
}
.btn-solid:hover{background:#b32c4d;}
.hero-dots{
  position:absolute;
  bottom:20px;left:0;right:0;
  display:flex;
  justify-content:center;
  gap:8px;
  z-index:2;
}
.hero-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.5);
  cursor:pointer;
}
.hero-dot.active{background:#fff;}

/* ---------- Page header (non-hero pages) ---------- */
.page-head{
  text-align:center;
  padding:60px 40px 10px;
  max-width:1280px;
  margin:0 auto;
}
.page-head h1{
  font-size:36px;
  font-weight:700;
}
.page-head p{
  color:var(--grey);
  margin-top:10px;
  font-size:15px;
}

/* ---------- Section shared ---------- */
section{
  padding:70px 40px;
  max-width:1280px;
  margin:0 auto;
}
.section-head{
  text-align:center;
  margin-bottom:40px;
}
.section-head h2{
  font-size:30px;
  font-weight:700;
}
.section-head p{
  color:var(--grey);
  margin-top:8px;
  font-size:15px;
}
.section-cta{
  text-align:center;
  margin-top:44px;
}

/* ---------- Product grid (no boxes) ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:36px 28px;
  align-items:start;
}
.grid-item a.thumb{display:block;overflow:hidden;border-radius:4px;}
.grid-item img{
  width:100%;
  height:auto;
  transition:transform .35s ease;
}
.grid-item a.thumb:hover img{transform:scale(1.04);}
.grid-item .title{
  margin-top:14px;
  font-size:15px;
  font-weight:600;
}
.grid-item .subject-tag{
  margin-top:2px;
  font-size:12px;
  color:var(--grey);
  text-transform:uppercase;
  letter-spacing:.03em;
}
.grid-item .price{
  margin-top:4px;
  font-size:14px;
  color:var(--grey);
}
@media (max-width:900px){
  .grid{grid-template-columns:repeat(2,1fr);}
}

/* ---------- Buy Now (Stripe Payment Link) ---------- */
.buy-now{
  display:inline-block;
  margin-top:8px;
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--accent);
  border-bottom:1px solid var(--accent);
  padding-bottom:1px;
}
.buy-now:hover{color:#b32c4d;border-color:#b32c4d;}

/* ---------- Size selector (per print) ---------- */
.size-selector{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:10px;
}
.size-btn{
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  padding:5px 11px;
  border:1px solid var(--border);
  border-radius:20px;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.size-btn:hover{border-color:var(--ink);}
.size-btn.active{background:var(--ink);color:#fff;border-color:var(--ink);}

/* ---------- Originals grid extras ---------- */
.grid-item .dimensions{
  margin-top:2px;
  font-size:12px;
  color:var(--grey);
}

/* ---------- Commissions section ---------- */
.commission-section{
  background:#fff;
  text-align:center;
}
.commission-section .section-head p{
  max-width:560px;
  margin-left:auto;
  margin-right:auto;
  line-height:1.6;
}
/* ---------- About page ---------- */
.about-row{
  display:flex;
  gap:56px;
  align-items:center;
  margin-bottom:64px;
}
.about-row:last-child{margin-bottom:0;}
.about-row.reverse{flex-direction:row-reverse;}
.about-photo{
  flex:0 0 320px;
}
.about-photo img{
  width:100%;
  height:auto;
  border-radius:8px;
}
.about-text{
  flex:1;
  min-width:0;
  text-align:left;
}
.about-text h2{
  font-size:22px;
  font-weight:700;
  margin-bottom:14px;
}
.about-text p{
  font-size:15px;
  line-height:1.75;
  color:var(--ink);
  margin-bottom:16px;
}
.about-text p em{
  color:var(--grey);
  font-style:italic;
}
@media (max-width:760px){
  .about-row,
  .about-row.reverse{flex-direction:column;gap:24px;}
  .about-photo{flex:0 0 auto;max-width:280px;}
}

/* ---------- Contact page ---------- */
.contact-summary{
  max-width:640px;
  margin:0 auto 48px;
  text-align:center;
  font-size:15px;
  line-height:1.7;
  color:var(--ink);
}
.contact-layout{
  display:flex;
  gap:56px;
  align-items:flex-start;
}
.contact-form{
  flex:1;
  min-width:0;
}
.contact-form label{
  display:block;
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-bottom:6px;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  font-family:inherit;
  font-size:14px;
  color:var(--ink);
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:4px;
  background:#fff;
  margin-bottom:20px;
}
.contact-form textarea{resize:vertical;min-height:120px;}
.contact-form input:focus,
.contact-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;}
.contact-form button{
  font-family:inherit;
  border:none;
  cursor:pointer;
}
.contact-info{
  flex:0 0 260px;
}
.contact-info h3{
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--grey);
  margin-bottom:8px;
}
.contact-info .info-block{margin-bottom:28px;}
.contact-info .info-value{
  font-size:16px;
  font-weight:600;
}
.contact-info .info-value a{border-bottom:1px solid transparent;}
.contact-info .info-value a:hover{border-color:var(--ink);}

@media (max-width:760px){
  .contact-layout{flex-direction:column;gap:36px;}
  .contact-info{flex:0 0 auto;}
}

/* ---------- Subject filter bar ---------- */
.filter-bar{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:48px;
}
.filter-btn{
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:9px 20px;
  border:1px solid var(--border);
  border-radius:20px;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.filter-btn:hover{border-color:var(--accent);}
.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}

/* ---------- Best sellers carousel ---------- */
.carousel-wrap{position:relative;}
.carousel{
  display:flex;
  align-items:flex-start;
  gap:24px;
  overflow-x:auto;
  scroll-behavior:smooth;
  padding-bottom:8px;
  scrollbar-width:none;
}
.carousel::-webkit-scrollbar{display:none;}
.carousel-item{
  flex:0 0 240px;
}
.carousel-item .thumb{display:block;overflow:hidden;border-radius:4px;position:relative;}
.carousel-item img{
  width:100%;
  height:auto;
  transition:transform .35s ease;
}
.carousel-item .thumb:hover img{transform:scale(1.04);}
.bestseller-tag{
  position:absolute;top:10px;left:10px;
  background:var(--accent-2);
  color:var(--ink);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  padding:4px 8px;
  border-radius:2px;
}
.carousel-item .title{margin-top:12px;font-size:14px;font-weight:600;}
.carousel-item .price{margin-top:2px;font-size:13px;color:var(--grey);}
.carousel-nav{
  display:flex;
  justify-content:center;
  gap:14px;
  margin-top:24px;
}
.carousel-nav button{
  width:38px;height:38px;
  border-radius:50%;
  border:1px solid var(--border);
  background:#fff;
  cursor:pointer;
  font-size:16px;
}
.carousel-nav button:hover{border-color:var(--accent);color:var(--accent);}

/* ---------- Instagram strip ---------- */
.insta-section{background:#fff;}
.insta-head{
  text-align:center;
  margin-bottom:32px;
}
.insta-head a{
  font-size:26px;
  font-weight:700;
  border-bottom:2px solid var(--accent);
  padding-bottom:2px;
}
.insta-handle{
  display:block;
  margin-top:8px;
  color:var(--grey);
  font-size:14px;
}
.insta-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:6px;
}
.insta-grid a{display:block;overflow:hidden;position:relative;}
.insta-grid img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  transition:transform .3s ease, opacity .3s ease;
}
.insta-grid a:hover img{transform:scale(1.05);opacity:.85;}
@media (max-width:900px){
  .insta-grid{grid-template-columns:repeat(3,1fr);}
}
.insta-embed-note{
  text-align:center;
  font-size:12px;
  color:var(--grey);
  margin-top:18px;
}

/* ---------- Site footer ---------- */
.site-footer{
  padding:44px 40px;
  text-align:center;
  border-top:1px solid var(--border);
}
.social-links{
  display:flex;
  justify-content:center;
  gap:16px;
  margin-bottom:18px;
}
.social-links a{
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ink);
  transition:border-color .15s ease, color .15s ease;
}
.social-links a:hover{border-color:var(--accent);color:var(--accent);}
.social-links svg{width:18px;height:18px;fill:currentColor;}
.footer-copy{font-size:12px;color:var(--grey);}

/* ---------- Loading / empty states ---------- */
.cart-empty{
  color:var(--grey);
  font-size:14px;
  text-align:center;
  padding:40px 0;
  grid-column:1/-1;
}

/* ---------- Buy Now / Add to Cart button reset ---------- */
button.buy-now{
  background:none;
  border:none;
  font-family:inherit;
}

/* ---------- Header cart toggle ---------- */
.cart-toggle{
  background:none;
  border:1px solid var(--border);
  border-radius:20px;
  padding:8px 16px;
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--ink);
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:6px;
  font-family:inherit;
  white-space:nowrap;
}
.cart-toggle:hover{border-color:var(--accent);color:var(--accent);}
.cart-count{
  background:var(--accent);
  color:#fff;
  border-radius:50%;
  min-width:18px;
  height:18px;
  font-size:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 4px;
}

/* ---------- Cart drawer ---------- */
.cart-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,.4);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  z-index:100;
}
.cart-overlay.open{opacity:1;pointer-events:auto;}
.cart-drawer{
  position:fixed;
  top:0;right:-380px;
  width:360px;max-width:90vw;
  height:100%;
  background:#fff;
  box-shadow:-4px 0 24px rgba(0,0,0,.15);
  transition:right .25s ease;
  z-index:101;
  display:flex;
  flex-direction:column;
}
.cart-drawer.open{right:0;}
.cart-drawer-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:20px 24px;
  border-bottom:1px solid var(--border);
}
.cart-drawer-head h3{font-size:18px;font-weight:700;}
.cart-drawer-head button{
  background:none;border:none;
  font-size:22px;cursor:pointer;
  color:var(--grey);
}
.cart-lines{flex:1;overflow-y:auto;padding:16px 24px;}
.cart-line{
  display:flex;gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--border);
  position:relative;
}
.cart-line img{width:60px;height:75px;object-fit:contain;border-radius:4px;}
.cart-line-info{flex:1;}
.cart-line-title{font-size:14px;font-weight:600;}
.cart-line-size,.cart-line-qty{font-size:12px;color:var(--grey);}
.cart-line-price{font-size:13px;margin-top:4px;}
.cart-line-remove{
  background:none;border:none;
  font-size:18px;color:var(--grey);
  cursor:pointer;
  position:absolute;top:12px;right:0;
}
.cart-line-remove:hover{color:var(--accent);}
.cart-footer{padding:20px 24px;border-top:1px solid var(--border);}
.cart-subtotal{
  display:flex;justify-content:space-between;
  font-weight:700;margin-bottom:14px;
}
.cart-checkout-btn{display:block;width:100%;text-align:center;}

/* ---------- Breadcrumb ---------- */
.breadcrumb{
  max-width:1280px;
  margin:0 auto;
  padding:28px 40px 0;
  font-size:13px;
  color:var(--grey);
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.breadcrumb a{border-bottom:1px solid transparent;}
.breadcrumb a:hover{border-color:var(--accent);color:var(--accent);}
.breadcrumb [aria-current]{color:var(--ink);font-weight:600;}

/* ---------- Product detail page ---------- */
.product-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:start;
  padding-top:36px;
}
.product-main-image img{
  width:100%;
  height:auto;
  border-radius:4px;
}
.product-thumbs{
  display:flex;
  gap:10px;
  margin-top:12px;
  flex-wrap:wrap;
}
.product-thumb{
  padding:0;
  border:2px solid transparent;
  border-radius:4px;
  background:none;
  cursor:pointer;
  overflow:hidden;
}
.product-thumb img{
  width:64px;
  height:auto;
  border-radius:2px;
  display:block;
}
.product-thumb.active{border-color:var(--accent);}
.product-info h1{
  font-size:30px;
  font-weight:700;
  margin-bottom:10px;
}
.product-price{
  font-size:20px;
  font-weight:600;
  margin-bottom:18px;
}
.one-of-a-kind{
  display:inline-block;
  background:#fff;
  border:1px solid var(--border);
  border-radius:20px;
  font-size:13px;
  color:var(--grey);
  padding:8px 18px;
  margin-bottom:18px;
}
.product-option{margin-bottom:22px;}
.option-label{
  display:block;
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-bottom:8px;
}
.size-selector-lg .size-btn{
  font-size:13px;
  padding:9px 18px;
}
.size-selector-lg .size-btn:disabled{
  opacity:.45;
  cursor:default;
  text-decoration:line-through;
}
.add-to-cart-lg{
  border:none;
  cursor:pointer;
  font-family:inherit;
  width:100%;
  max-width:340px;
  margin:6px 0 26px;
}
.add-to-cart-lg:disabled{opacity:.55;cursor:default;}
.product-description{
  font-size:15px;
  line-height:1.75;
  margin-bottom:28px;
}
.product-description p{margin-bottom:14px;}
.product-details-block{
  border-top:1px solid var(--border);
  padding-top:22px;
}
.product-details-block h2{
  font-size:14px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:10px;
}
.product-details-block p{
  font-size:14px;
  line-height:1.7;
  color:var(--grey);
}
.product-details-block a{
  color:var(--accent);
  border-bottom:1px solid var(--accent);
}
.product-error{
  grid-column:1/-1;
  text-align:center;
  padding:60px 0;
}
.product-error p{margin-bottom:20px;color:var(--grey);}
.related-section{padding-top:20px;}
@media (max-width:760px){
  .product-layout{grid-template-columns:1fr;gap:28px;}
  .breadcrumb{padding:20px 20px 0;}
  .product-layout{padding:24px 20px 50px;}
}

/* ---------- Loading skeletons ---------- */
.skeleton-card .sk-thumb{
  aspect-ratio:5/7;
  border-radius:4px;
  background:linear-gradient(100deg,#f3dde4 40%,#faeef2 50%,#f3dde4 60%);
  background-size:200% 100%;
  animation:shimmer 1.2s linear infinite;
}
.sk-line{
  height:13px;
  border-radius:6px;
  margin-top:12px;
  background:linear-gradient(100deg,#f3dde4 40%,#faeef2 50%,#f3dde4 60%);
  background-size:200% 100%;
  animation:shimmer 1.2s linear infinite;
}
@keyframes shimmer{
  from{background-position:200% 0;}
  to{background-position:-200% 0;}
}
@media (prefers-reduced-motion: reduce){
  .skeleton-card .sk-thumb,.sk-line{animation:none;}
}

/* ---------- Card link + sold state ---------- */
.grid-item .title-link,.carousel-item .title-link{display:block;}
.grid-item .title-link:hover .title,.carousel-item .title-link:hover .title{color:var(--accent);}
.sold-tag{
  position:absolute;top:10px;left:10px;
  background:var(--ink);
  color:#fff;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  padding:4px 8px;
  border-radius:2px;
  z-index:1;
}
button.buy-now:disabled{opacity:.5;cursor:default;border-bottom-color:transparent;}

.grid-item a.thumb{position:relative;}

/* ---------- Cart quantity controls ---------- */
.cart-line-qty{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:4px;
}
.qty-btn{
  width:22px;height:22px;
  border:1px solid var(--border);
  border-radius:50%;
  background:#fff;
  color:var(--ink);
  font-size:13px;
  line-height:1;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.qty-btn:hover{border-color:var(--accent);color:var(--accent);}
.qty-btn:disabled{opacity:.5;cursor:default;}

/* ---------- Screen-reader-only utility ---------- */
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* ---------- Cart error note ---------- */
.cart-error{
  margin:0 24px 12px;
  font-size:13px;
  color:#8f2440;
  background:#fdeef1;
  border:1px solid #f3c2ce;
  border-radius:4px;
  padding:10px 12px;
}

/* ---------- Logo image ---------- */
.logo img{height:56px;display:block;}
@media (max-width:820px){
  .logo img{height:44px;}
}

/* ---------- Mobile nav ---------- */
.nav-toggle{
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
  flex-direction:column;
  gap:5px;
}
.nav-toggle span{
  display:block;
  width:22px;
  height:2px;
  background:var(--ink);
  border-radius:2px;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:820px){
  .nav-toggle{display:flex;}
  nav.main-nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;right:0;
    background:#fff;
    border-bottom:1px solid var(--border);
    flex-direction:column;
    gap:0;
    padding:8px 0;
    z-index:50;
    box-shadow:0 8px 24px rgba(42,20,32,.08);
  }
  nav.main-nav.open{display:flex;}
  nav.main-nav a{
    padding:13px 24px;
    border-bottom:none;
    font-size:14px;
  }
  nav.main-nav a.active{color:var(--accent);}
  header{flex-wrap:nowrap;}
}

.cart-line-remove:disabled{opacity:.5;cursor:default;}

/* ---------- About page links ---------- */
.about-text a{color:var(--accent);border-bottom:1px solid var(--accent);}

/* ---------- Contact form status + honeypot ---------- */
.form-status{
  border-radius:4px;
  padding:14px 16px;
  font-size:14px;
  margin-bottom:20px;
  border:1px solid var(--border);
  background:#fff;
}
.form-status.success{background:#eef8f2;border-color:#bfe3cd;color:#1d5c38;}
.form-status.error{background:#fdeef1;border-color:#f3c2ce;color:#8f2440;}
.form-status a{color:inherit;border-bottom:1px solid currentColor;font-weight:600;}
.contact-summary a{color:var(--accent);border-bottom:1px solid var(--accent);}
.hp-field{position:absolute;left:-9999px;top:-9999px;}

/* ---------- Cart empty state link ---------- */
.cart-empty a{color:var(--accent);border-bottom:1px solid var(--accent);}

/* ---------- Skip link + focus visibility ---------- */
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  background:var(--ink);
  color:#fff;
  padding:10px 18px;
  z-index:200;
  font-size:13px;
  font-weight:600;
}
.skip-link:focus{left:0;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* ---------- Footer columns ---------- */
.footer-cols{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:40px;
  max-width:1280px;
  margin:0 auto 28px;
  text-align:left;
}
.footer-title{font-size:18px;font-weight:700;margin-bottom:8px;}
.footer-blurb{font-size:13px;color:var(--grey);max-width:280px;line-height:1.6;}
.footer-links{display:flex;flex-direction:column;gap:10px;}
.footer-links a{
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.footer-links a:hover{color:var(--accent);}
.site-footer .social-links{margin-bottom:0;}
@media (max-width:760px){
  .footer-cols{flex-direction:column;gap:28px;text-align:left;}
}

/* ---------- 404 ---------- */
.notfound-actions .section-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.btn-outline{
  background:transparent;
  color:var(--accent);
  border:1px solid var(--accent);
}
.btn-outline:hover{background:var(--accent);color:#fff;}

/* ---------- Mobile nav open (body scroll lock) ---------- */
body.nav-open{overflow:hidden;}

/* ---------- Newsletter ---------- */
.newsletter-section{
  background:#fff;
  border-top:1px solid var(--border);
  padding:56px 40px;
}
.newsletter-inner{
  max-width:560px;
  margin:0 auto;
  text-align:center;
}
.newsletter-inner h2{
  font-size:24px;
  font-weight:700;
  margin-bottom:8px;
}
.newsletter-inner p{
  color:var(--grey);
  font-size:14px;
  margin-bottom:22px;
}
.newsletter-form{
  display:flex;
  gap:10px;
  justify-content:center;
}
.newsletter-form input[type="email"]{
  flex:1;
  min-width:0;
  font-family:inherit;
  font-size:14px;
  color:var(--ink);
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:4px;
  background:var(--cream);
}
.newsletter-form button{
  border:none;
  cursor:pointer;
  font-family:inherit;
  white-space:nowrap;
}
.newsletter-status{
  margin-top:16px;
  font-size:14px;
  border-radius:4px;
  padding:12px 14px;
  border:1px solid var(--border);
  background:#fff;
}
.newsletter-status.success{background:#eef8f2;border-color:#bfe3cd;color:#1d5c38;}
.newsletter-status.error{background:#fdeef1;border-color:#f3c2ce;color:#8f2440;}
@media (max-width:560px){
  .newsletter-form{flex-direction:column;}
}

/* ---------- Section subtext (multi-paragraph) ---------- */
.section-sub{
  max-width:640px;
  margin:8px auto 0;
}
.section-sub p{
  color:var(--grey);
  font-size:15px;
  line-height:1.7;
  margin-top:10px;
}

/* ---------- Welsh definition block (About) ---------- */
.joio-definition{
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:18px 22px;
  margin:0 0 16px;
}
.joio-definition p{margin:0;}
.joio-word{font-size:18px;font-weight:700;}
.joio-word span{font-size:13px;font-weight:400;color:var(--grey);}
.joio-phonetic{font-size:13px;color:var(--grey);margin-top:2px;}
.joio-meaning{font-size:14px;margin-top:6px;}
