/* Customize Poster — warm rose gift-store palette. */
@font-face {
  font-family:'BricolageGrotesque-Bold';
  src:url('../fonter/BricolageGrotesque-Bold.woff') format('woff');
  font-style:normal;
  font-weight:700;
  font-display:swap;
}

:root {
  --ink:#111111;
  --muted:#111111;
  --cream:#FFFFFF;
  --surface:#FFFFFF;
  --blush:#FDEDF6;
  --blush-light:#FDEDF6;
  --berry:#111111;
  --berry-hover:#111111;
  --line:#E1D7D9;
  --rose:#111111;
  --sage:#E7EBDD;
  --oat:#F0EEE7;
  --green:var(--berry);
  --photo-radius:1.25rem;
}



* {
  box-sizing: border-box;
}

html {
  font-size: 19px;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font: 1rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

button,input,textarea,select {
  font: inherit;
}

button,a {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

.announcement {
  text-align: center;
  background: var(--green);
  color: white;
  padding: 10px;
  font-size: 0.75rem;
  letter-spacing: 1.3px;
}

header {
  height: 102px;
  margin: 0 5%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
}

.brand {
  font: 2.15rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  letter-spacing: -1px;
}

.brand span {
  font-style: italic;
}

nav {
  display: flex;
  gap: 32px;
  align-items: center;
}

nav a {
  font-size: 0.85rem;
  padding: 10px 0;
}

nav a.active {
  border-bottom: 1px solid;
}

.menu {
  display: none;
  background: none;
  border: 0;
  font-size: 1.55rem;
}

.smallmark {
  font-size: 0.75rem;
  letter-spacing: 1px;
}

.crumb {
  margin: 28px 5% 24px;
  font-size: 0.75rem;
  color: var(--muted);
}

main {
  margin: 0 5%;
  display: grid;
  grid-template-columns: 1.13fr 1fr;
  gap: 7%;
}

.visual {
  position: relative;
  background: #e8e7df;
  min-height: 690px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.scene {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 25% 12%,#ffffff99,transparent 65%),linear-gradient(120deg,#e9e8e0,#d9d9ce);
  transition: .3s;
}

.scene:after {
  content: '';
  position: absolute;
  width: 120%;
  height: 1px;
  background: #c7c6b8;
  bottom: 52px;
  left: 0;
  box-shadow: 0 20px 40px #5553;
}

.frame {
  position: relative;
  width: 67%;
  padding: 9px;
  background: linear-gradient(95deg,#a38157,#d0b78b 45%,#b29368);
  box-shadow: 14px 16px 23px #4a44382b,2px 3px 5px #0003;
  transition: .35s;
}

.paper {
  background: #fffef9;
  aspect-ratio: 3/4;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14%;
  box-shadow: inset 0 0 5px #0002;
}

.postertext {
  width: 100%;
  color: #111111;
  overflow-wrap: anywhere;
}

.word {
  font: bold 3.05rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  letter-spacing: -2px;
  line-height: 1.12;
}

.pron {
  font: 0.85rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 13px 0 27px;
}

.definition {
  white-space: pre-wrap;
  font: 1rem/1.7 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.signature {
  font: italic 0.75rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin-top: 24px;
}

.postertext.modern .word {
  font-family: 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  letter-spacing: -2px;
}

.postertext.modern .definition,.postertext.modern .pron {
  font-family: 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.postertext.editorial .word {
  font-family: 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  font-weight: 400;
  font-size: 3.65rem;
}

.previewlabel {
  position: absolute;
  top: 23px;
  left: 25px;
  font-size: 0.65rem;
  letter-spacing: 1.8px;
}

.zoom {
  position: absolute;
  bottom: 20px;
  right: 20px;
  border: 0;
  background: #fff9;
  border-radius: 50%;
  width: 37px;
  height: 37px;
  font-size: 1.45rem;
}

.visual.zoomed .frame {
  width: 88%;
}

.views {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}

.thumb {
  border: 1px solid transparent;
  background: #e7e6dd;
  padding: 0;
  width: 66px;
  height: 72px;
  display: grid;
  place-items: center;
}

.thumb.active {
  border-color: #4b5147;
}

.miniposter {
  width: 31px;
  height: 43px;
  background: #fffdf5;
  border: 3px solid #b69a74;
  display: grid;
  place-items: center;
  font: bold 0.35rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.viewcaption {
  margin-left: auto;
  color: var(--muted);
  font-size: 0.75rem;
}

.eyebrow {
  font-size: 0.65rem;
  letter-spacing: 2.1px;
  text-transform: uppercase;
  color: var(--muted);
}

h1 {
  font: 3.6rem/1.05 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  letter-spacing: -1.4px;
  margin: 13px 0 15px;
}

h1 em {
  font-weight: 400;
}

.intro {
  font-size: 0.95rem;
  line-height: 1.8;
  max-width: 440px;
  color: #111111;
  margin-bottom: 22px;
}

.price {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.amount {
  font-size: 1.6rem;
}

.price small {
  color: var(--muted);
  font-size: 0.75rem;
}

.tabs {
  display: flex;
  border-bottom: 1px solid var(--line);
  margin-bottom: 26px;
}

.tabs a {
  width: 50%;
  text-align: center;
  padding: 14px 5px;
  font-size: 0.8rem;
  color: var(--muted);
}

.tabs a.active {
  color: var(--ink);
  border-bottom: 2px solid var(--ink);
}

.sectionlabel {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
  margin-bottom: 15px;
}

.sectionlabel span {
  color: var(--muted);
  font-size: 0.65rem;
}

.examples {
  display: flex;
  gap: 7px;
  margin-bottom: 19px;
}

.examples button {
  border: 1px solid var(--line);
  background: transparent;
  padding: 7px 12px;
  font-size: 0.65rem;
  border-radius: 20px;
}

.examples button:hover {
  background: var(--blush-light);
}

label {
  display: block;
  font-size: 0.75rem;
  margin-bottom: 7px;
}

.field {
  margin-bottom: 15px;
}

.fieldhead {
  display: flex;
  justify-content: space-between;
}

.count {
  font-size: 0.65rem;
  color: #111111;
}

input,textarea,select {
  width: 100%;
  background: #fffefa;
  border: 1px solid #d8d9cf;
  border-radius: 0;
  padding: 11px 12px;
  color: var(--ink);
  outline: none;
  font-size: 0.85rem;
}

input:focus,textarea:focus,select:focus {
  border-color: #5b6859;
  box-shadow: 0 0 0 2px #5b685912;
}

textarea {
  height: 91px;
  resize: vertical;
  line-height: 1.6;
}

.styles {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 8px;
  margin-bottom: 21px;
}

.style {
  border: 1px solid var(--line);
  background: transparent;
  padding: 12px 5px;
  font-size: 0.65rem;
}

.style b {
  display: block;
  font: 1.4rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin-bottom: 4px;
}

.style.active {
  border-color: #394634;
  background: var(--blush-light);
}

.style:nth-child(2) b {
  font-family: 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.style:nth-child(3) b {
  font-family: 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.buy {
  width: 100%;
  border: 0;
  background: var(--green);
  color: white;
  padding: 17px;
  font-size: 0.85rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.buy:hover {
  background: #303e30;
}

.paynote {
  text-align: center;
  color: var(--muted);
  font-size: 0.65rem;
  margin: 11px 0 20px;
}

.benefits {
  border-top: 1px solid var(--line);
  padding-top: 17px;
  display: flex;
  justify-content: space-between;
  font-size: 0.65rem;
  gap: 8px;
}

.under {
  margin: 80px 5%;
  border-top: 1px solid var(--line);
  padding-top: 37px;
}

.steps {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 45px;
}

.steps article {
  display: flex;
  gap: 16px;
}

.stepnumber {
  font: 2rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  color: #111111;
}

.steps h3 {
  font-size: 0.85rem;
  font-weight: 500;
  margin: 2px 0 8px;
}

.steps p {
  font-size: 0.8rem;
  line-height: 1.8;
  color: var(--muted);
  margin: 0;
}

.inspiration {
  margin: 85px 5%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7%;
  align-items: center;
}

.lifestyle {
  height: 480px;
  background: url('../img/photo-1600210492486-724fe5c67fb0-3-1400.webp') center/cover;
  position: relative;
}

.littleframe {
  position: absolute;
  width: 130px;
  top: 52px;
  left: 47%;
  border: 6px solid #b89c75;
  background: #fffdf6;
  padding: 30px 15px 36px;
  box-shadow: 5px 7px 12px #0002;
}

.littleframe b {
  font: bold 1.25rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.littleframe p {
  font: 0.45rem/1.7 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.inspiration h2 {
  font: 3.25rem/1.1 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  max-width: 380px;
  margin: 20px 0;
}

.inspiration p {
  font-size: 0.85rem;
  line-height: 1.9;
  color: var(--muted);
  max-width: 370px;
}

.textlink {
  display: inline-block;
  border-bottom: 1px solid;
  padding: 8px 0;
  margin-top: 12px;
  font-size: 0.8rem;
}

.faq {
  max-width: 760px;
  margin: 85px auto;
  padding: 0 24px;
}

.faq h2 {
  font: 2.4rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin-bottom: 28px;
}

details {
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
  font-size: 0.85rem;
}

summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
}

summary:after {
  content: '+';
}

details[open] summary:after {
  content: '−';
}

details p {
  color: var(--muted);
  line-height: 1.8;
  font-size: 0.8rem;
  max-width: 650px;
}

footer {
  background: var(--blush);
  padding: 40px 5% 23px;
}

.footrow {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.footerlinks {
  display: flex;
  gap: 24px;
  font-size: 0.75rem;
}

.copyright {
  border-top: 1px solid #d7d8ce;
  margin-top: 34px;
  padding-top: 20px;
  font-size: 0.65rem;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
}

.physical {
  display: none;
}

.modalback {
  position: fixed;
  inset: 0;
  z-index: 10;
  background: #20251e66;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.modalback.open {
  display: flex;
}

.modal {
  background: var(--cream);
  padding: 35px;
  max-width: 460px;
  position: relative;
}

.modal h2 {
  font: 2.35rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.modal p {
  font-size: 0.85rem;
  line-height: 1.8;
  color: var(--muted);
}

.close {
  position: absolute;
  right: 15px;
  top: 15px;
  border: 0;
  background: transparent;
  font-size: 1.6rem;
}

.shipping {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.notice {
  font-size: 0.75rem;
  color: var(--muted);
  line-height: 1.6;
  margin: 12px 0;
}

.galleryroom .scene {
  background: url('../img/photo-1616486338812-3dadae4b4ace-11-1200.webp') center/cover;
}

.galleryroom .frame {
  width: 45%;
  transform: translateY(-60px);
}

.galleryroom .word {
  font-size: 2rem;
}

.galleryroom .definition {
  font-size: 0.65rem;
}

.galleryroom .pron {
  font-size: 0.6rem;
  margin: 8px 0 15px;
}

.galleryroom .signature {
  font-size: 0.55rem;
}

.galleryroom .previewlabel {
  background: #fff9;
  padding: 6px;
}

.galleryroom .scene:after {
  display: none;
}

@media(min-width:1450px) {
  main {
    max-width: 1320px;
    margin: auto;
  }

  .visual {
    min-height: 790px;
  }

  .word {
    font-size: 3.75rem;
  }

  .definition {
    font-size: 1.15rem;
  }
}

@media(max-width:900px) {
  main {
    gap: 4%;
  }

  .visual {
    min-height: 600px;
  }

  .word {
    font-size: 2.25rem;
  }

  .definition {
    font-size: 0.8rem;
  }

  .pron {
    font-size: 0.65rem;
  }

  h1 {
    font-size: 2.95rem;
  }

  .benefits {
    font-size: 0.6rem;
  }

  .inspiration h2 {
    font-size: 2.65rem;
  }
}

@media(max-width:650px) {
  header {
    height: 80px;
  }

  .brand {
    font-size: 1.85rem;
  }

  .menu {
    display: block;
  }

  .smallmark {
    display: none;
  }

  nav {
    display: none;
    position: absolute;
    top: 114px;
    left: 0;
    right: 0;
    background: var(--cream);
    z-index: 5;
    padding: 22px 5%;
    border-bottom: 1px solid var(--line);
  }

  nav.open {
    display: flex;
    flex-wrap: wrap;
  }

  .announcement {
    font-size: 0.6rem;
  }

  .crumb {
    margin: 20px 5%;
    font-size: 0.65rem;
  }

  main {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .visual {
    min-height: 490px;
  }

  .frame {
    width: 60%;
    max-width: 300px;
  }

  .word {
    font-size: 2.4rem;
  }

  .definition {
    font-size: 0.8rem;
  }

  .views {
    margin-bottom: 0;
  }

  .editor {
    padding-top: 5px;
  }

  h1 {
    font-size: 3.05rem;
  }

  .intro {
    font-size: 0.95rem;
  }

  .benefits {
    font-size: 0.65rem;
  }

  .under {
    margin-top: 45px;
  }

  .steps {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .inspiration {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 50px;
  }

  .lifestyle {
    height: 370px;
  }

  .inspiration h2 {
    font-size: 2.85rem;
  }

  .faq {
    margin: 55px auto;
  }

  .footrow {
    align-items: flex-start;
    gap: 24px;
    flex-direction: column;
  }

  .footerlinks {
    flex-wrap: wrap;
    gap: 18px;
  }

  .copyright {
    line-height: 1.7;
  }

  .postertext.editorial .word {
    font-size: 2.85rem;
  }
}

header {
  border: 0;
}

.homehero {
  height: 680px;
  min-height: 600px;
  position: relative;
  overflow: hidden;
  background: var(--blush);
}

.homehero>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 57%;
}

.homehero:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,#1820168a,transparent 85%);
}

.herocopy {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 8%;
  transform: translateY(-50%);
  color: #fff;
  max-width: 570px;
}

.herocopy .eyebrow {
  color: #fff;
  letter-spacing: 2.6px;
}

.herocopy h1 {
  font-size: 5.85rem;
  line-height: .98;
  margin: 24px 0;
  letter-spacing: -2px;
}

.herocopy p {
  font-size: 1rem;
  line-height: 1.9;
  max-width: 340px;
  color: #111111;
}

.homebutton {
  display: inline-flex;
  gap: 65px;
  align-items: center;
  padding: 17px 24px;
  background: var(--cream);
  color: var(--ink);
  font-size: 0.8rem;
  margin-top: 18px;
}

.herosecond {
  margin-left: 25px;
  border-bottom: 1px solid #fff8;
  font-size: 0.8rem;
  padding-bottom: 5px;
}

.herobottom {
  position: absolute;
  z-index: 2;
  bottom: 25px;
  left: 8%;
  right: 5%;
  display: flex;
  justify-content: space-between;
  color: #fff;
  font-size: 0.65rem;
  letter-spacing: 1px;
}

.strip {
  display: flex;
  justify-content: center;
  gap: 95px;
  border-bottom: 1px solid var(--line);
  padding: 23px 5%;
  font-size: 0.75rem;
}

.editorialintro {
  text-align: center;
  max-width: 740px;
  margin: 85px auto 55px;
  padding: 0 24px;
}

.editorialintro h2 {
  font: 3.65rem/1.1 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 18px 0;
}

.editorialintro p {
  max-width: 480px;
  margin: auto;
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.9;
}

.roomgrid {
  margin: 0 5%;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 25px;
  align-items: start;
}

.roomcard {
  position: relative;
}

.roomphoto {
  height: 580px;
  overflow: hidden;
  position: relative;
  background: #e1dfd5;
}

.roomphoto>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s;
}



.roomcard:nth-child(2) {
  margin-top: 100px;
}

.roomcard:nth-child(2) .roomphoto {
  height: 480px;
}

.roomcaption {
  display: flex;
  justify-content: space-between;
  margin-top: 18px;
  align-items: center;
}

.roomcaption h3 {
  font: 1.95rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 0;
}

.roomcaption span {
  font-size: 0.75rem;
  color: var(--muted);
}

.quotechapter {
  margin: 95px 0;
  background: var(--blush-light);
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.quoteart {
  min-height: 560px;
  display: grid;
  place-items: center;
  background: radial-gradient(at 15% 20%,#f5f4e9,#dedfcf);
}

.homeposter {
  width: 280px;
  aspect-ratio: 3/4;
  background: #fffdf5;
  border: 8px solid #b49a72;
  padding: 64px 32px;
  box-shadow: 15px 18px 30px #3f3d3025;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.homeposter b {
  font: bold 2.8rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  letter-spacing: -2px;
}

.homeposter small {
  font: 0.8rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 15px 0 25px;
}

.homeposter p {
  font: 0.95rem/1.8 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 0;
}

.homeposter i {
  font: 0.65rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin-top: 25px;
}

.quotecopy {
  padding: 80px 13%;
  align-self: center;
}

.quotecopy h2 {
  font: 3.65rem/1.05 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 24px 0;
}

.quotecopy p {
  font-size: 0.85rem;
  line-height: 1.9;
  color: var(--muted);
}

.deliverysection {
  margin: 90px 5%;
}

.sectionheading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 30px;
}

.sectionheading h2 {
  font: 3.2rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 12px 0 0;
}

.sectionheading>p {
  font-size: 0.8rem;
  color: var(--muted);
}

.deliverygrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}

.deliveryphoto {
  height: 400px;
  position: relative;
  overflow: hidden;
}

.deliveryphoto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.deliverycopy {
  padding: 25px 0;
}

.deliverycopy .eyebrow {
  font-size: 0.6rem;
}

.deliverycopy h3 {
  font: 2.25rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 13px 0;
}

.deliverycopy p {
  font-size: 0.85rem;
  color: var(--muted);
  line-height: 1.8;
  max-width: 430px;
}

.deliverycopy .textlink {
  margin-top: 4px;
}

.wideimage {
  height: 490px;
  position: relative;
  overflow: hidden;
}

.wideimage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wideimage:after {
  content: '';
  position: absolute;
  inset: 0;
  background: #1720123b;
}

.widecopy {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  text-align: center;
  padding: 20px;
}

.widecopy h2 {
  font: 4.55rem/1.05 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 20px 0;
}

.widecopy .eyebrow {
  color: white;
}

.homefaq {
  max-width: 760px;
  margin: 80px auto;
  padding: 0 24px;
}

.homefaq h2 {
  font: 2.55rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
}

.imagecredit {
  text-align: center;
  font-size: 0.6rem;
  color: var(--muted);
  margin: 15px 20px 0;
}

.homepage nav .active {
  border-bottom: 1px solid;
}

.mobilelabel {
  display: none;
}

@media(max-width:900px) {
  .herocopy h1 {
    font-size: 5rem;
  }

  .strip {
    gap: 35px;
  }

  .roomphoto {
    height: 460px;
  }

  .roomcard:nth-child(2) .roomphoto {
    height: 390px;
  }

  .quotecopy {
    padding: 50px 10%;
  }

  .quotecopy h2 {
    font-size: 3rem;
  }

  .deliveryphoto {
    height: 330px;
  }
}

@media(max-width:650px) {
  .homehero {
    height: 610px;
    min-height: 0;
  }

  .homehero>img {
    object-position: 62% center;
  }

  .homehero:after {
    background: #16201465;
  }

  .herocopy {
    left: 7%;
    right: 7%;
  }

  .herocopy h1 {
    font-size: 4.35rem;
  }

  .herocopy p {
    font-size: 0.95rem;
  }

  .herosecond {
    display: inline-block;
    margin: 20px 0 0 18px;
  }

  .herobottom {
    font-size: 0.55rem;
    left: 7%;
  }

  .herobottom span:last-child {
    display: none;
  }

  .strip {
    gap: 16px;
    justify-content: space-between;
    font-size: 0.6rem;
    padding: 19px 5%;
  }

  .editorialintro {
    margin: 55px auto 35px;
  }

  .editorialintro h2 {
    font-size: 2.85rem;
  }

  .roomgrid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .roomphoto {
    height: 440px;
  }

  .roomcard:nth-child(2) {
    margin-top: 0;
  }

  .roomcard:nth-child(2) .roomphoto {
    height: 390px;
  }

  .roomcaption h3 {
    font-size: 1.8rem;
  }

  .quotechapter {
    margin: 55px 0;
    grid-template-columns: 1fr;
  }

  .quoteart {
    min-height: 450px;
  }

  .homeposter {
    width: 255px;
  }

  .quotecopy {
    padding: 45px 7%;
  }

  .quotecopy h2 {
    font-size: 3.05rem;
  }

  .deliverysection {
    margin: 55px 5%;
  }

  .sectionheading {
    display: block;
  }

  .sectionheading h2 {
    font-size: 2.8rem;
  }

  .deliverygrid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .deliveryphoto {
    height: 360px;
  }

  .wideimage {
    height: 420px;
  }

  .widecopy h2 {
    font-size: 3.35rem;
  }

  .homefaq {
    margin: 55px auto;
  }

  .homebutton {
    gap: 35px;
  }

  .roomcaption span {
    font-size: 0.65rem;
  }

  .homepage nav {
    top: 114px;
  }

  .homeposter p {
    font-size: 0.85rem;
  }
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  padding: 15px 0 30px;
}

.footer-grid h3 {
  font-size: 0.75rem;
  font-weight: 600;
  margin: 0 0 19px;
}

.footer-grid a:not(.brand) {
  display: block;
  font-size: 0.8rem;
  color: #111111;
  margin: 13px 0;
}

.footer-grid a:hover {
  text-decoration: underline;
}

.footer-grid p {
  font-size: 0.8rem;
  line-height: 1.9;
  color: var(--muted);
  max-width: 240px;
}

.copyright a {
  margin-left: 15px;
}

.infohero {
  padding: 48px 6% 55px;
  text-align: center;
  border-top: 1px solid var(--line);
}

.infohero h1 {
  font-size: 4.2rem;
  line-height: 1.02;
  letter-spacing: -0.055em!important;
  margin: 19px 0;
}

.infohero>p {
  font-size: 0.95rem;
  color: var(--muted);
  line-height: 1.9;
  max-width: 560px;
  margin: 20px auto 0;
}

.infobody {
  max-width: 850px;
  margin: 0 auto 85px;
  padding: 0 25px;
  display: block;
}

.infobody h2 {
  font: 2.15rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 38px 0 15px;
}

.infobody p,.infobody li {
  font-size: 0.95rem;
  color: #111111;
  line-height: 1.95;
}

.infobody a {
  border-bottom: 1px solid #b7bcad;
}

.infobody li {
  margin: 8px 0;
}

.policy-note {
  background: var(--blush-light);
  border-left: 2px solid #6d795f;
  padding: 18px 23px;
  margin: 0 0 35px;
  font-size: 0.8rem;
  line-height: 1.9;
  color: #111111;
}

.updated {
  font-size: 0.75rem;
  color: var(--muted);
  margin: 0 0 25px;
}

.helpgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin-top: 35px;
}

.helpcard {
  padding: 28px;
  background: var(--blush-light);
}

.helpcard h2 {
  margin: 0 0 12px;
}

.inspo-grid {
  margin: 0 5% 65px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 28px;
}

.inspo-grid article:nth-child(even) {
  padding-top: 65px;
}

.inspo-grid img {
  width: 100%;
  height: 480px;
  object-fit: cover;
  display: block;
}

.inspo-grid h2 {
  font: 2.25rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 22px 0 10px;
}

.inspo-grid p {
  font-size: 0.85rem;
  line-height: 1.9;
  color: var(--muted);
  max-width: 440px;
}

.inspo-grid .textlink {
  margin-top: 0;
}

.faqbody details {
  padding: 22px 0;
}

.faqbody details p {
  font-size: 0.85rem;
}

.faqbody h2 {
  margin-top: 40px;
}

.bottomcta {
  padding: 45px 20px;
  background: var(--blush-light);
  text-align: center;
  margin-top: 45px;
}

.bottomcta h2 {
  font: 2.4rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  margin: 0 0 10px;
}

.bottomcta .homebutton {
  background: var(--green);
  color: white;
}

.clear-draft {
  border: 1px solid #b3b9a9;
  background: none;
  padding: 12px 18px;
  font-size: 0.8rem;
}

.statusline {
  font-size: 0.8rem;
  color: #111111;
  min-height: 20px;
}

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline: 2px solid #65705a;
  outline-offset: 4px;
}

@media(max-width:650px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }

  .footer-grid>div:first-child {
    grid-column: 1/-1;
  }

  .infohero {
    padding: 48px 6% 35px;
  }

  .infohero h1 {
    font-size: 3rem;
  }

  .infobody {
    margin-bottom: 50px;
  }

  .helpgrid,.inspo-grid {
    grid-template-columns: 1fr;
  }

  .inspo-grid article:nth-child(even) {
    padding-top: 0;
  }

  .inspo-grid img {
    height: 390px;
  }

  .inspo-grid {
    gap: 35px;
  }

  .copyright {
    flex-wrap: wrap;
    gap: 10px;
  }

  .copyright a {
    margin: 0 12px 0 0;
  }

  .footer-grid .brand {
    font-size: 2rem;
  }
}

@media(min-width:651px) and (max-width:1100px) {
  header .smallmark {
    display: none;
  }

  nav {
    gap: 22px;
  }
}

@media(max-width:650px) {
  .roomcaption {
    gap: 12px;
    flex-wrap: wrap;
  }

  .strip {
    flex-wrap: wrap;
    justify-content: center;
  }

  .homehero {
    height: 660px;
  }

  nav {
    top: 100%;
    left: -5.56%;
    right: -5.56%;
  }

  header {
    position: relative;
  }

  .homepage nav {
    top: 100%;
  }
}

@media(min-width:651px) {
  .herocopy {
    max-width: 660px;
  }
}

body {
  font-weight: 400;
  line-height: 1.6;
}

h1,h2,h3,h4,h5,h6 {
  font-family: 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  font-weight: 600;
}

h1 em {
  font-weight: 600;
}

button,input,textarea,select {
  font-family: 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  font-weight: 400;
}

.brand {
  font-weight: 600;
}

@media(min-width:651px) {
  .herocopy {
    max-width: 960px;
    right: 5%;
  }

  .homehero {
    height: 800px;
  }

  .herocopy p {
    max-width: 460px;
  }

  header .smallmark {
    display: none;
  }

  nav {
    gap: 24px;
  }
}

@media(max-width:650px) {
  .homehero {
    height: 850px;
  }

  .herocopy {
    top: 45%;
  }

  .herocopy h1 {
    overflow-wrap: normal;
    font-size: clamp(2.85rem,18.98vw,4.35rem);
  }

  .footer-grid {
    gap: 20px;
  }

  .shipping {
    grid-template-columns: 1fr;
  }

  .benefits {
    flex-wrap: wrap;
  }

  .copyright {
    overflow-wrap: anywhere;
  }
}

h1,h2,h3,h4,h5,h6 {
  letter-spacing: -1px!important;
}

:root {
  --body-copy: 1rem;
}

html {
  scroll-behavior: smooth;
}

body {
  font-size: var(--body-copy);
}

.hero-facts {
  display: block;
  margin-top: 16px;
  font-size: 0.8rem;
  color: #fff;
}

.homehero {
  min-height: 760px;
}

.herocopy {
  max-width: 53%;
}

.herocopy h1 {
  font-size: clamp(3.05rem,6.5vw,4.85rem);
}

.hero-product {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 9%;
  transform: translateY(-50%);
  text-align: center;
}

.hero-product .homeposter {
  width: 300px;
  text-align: left;
  aspect-ratio: 3/4;
  padding: 40px 28px;
}

.hero-product>span {
  display: block;
  color: white;
  font-size: 0.7rem;
  margin-top: 18px;
  text-shadow: 0 1px 6px #000;
}

.hero-product .homeposter b {
  font-size: 2.65rem;
}

.hero-product .homeposter p {
  font-size: 0.85rem;
}

.preview-column {
  position: sticky;
  top: 24px;
  align-self: start;
  min-width: 0;
}

.visual {
  min-height: 0;
  aspect-ratio: 4/5;
}

.paper {
  height: auto;
  min-height: 0;
  aspect-ratio: 3/4;
  padding: 12%;
  overflow: hidden;
}

.postertext {
  width: 100%;
  min-width: 0;
}

.postertext .word {
  font-weight: 600;
  letter-spacing: -1px;
  overflow-wrap: anywhere;
}

.postertext .pron,.postertext .definition,.postertext .signature {
  margin: 0;
}

.postertext .pron {
  margin-top: 12px;
}

.postertext .definition {
  margin-top: 24px;
}

.postertext .signature {
  margin-top: 24px;
}

.editor {
  min-width: 0;
  scroll-margin-top: 20px;
}

.optional-fields {
  margin: 12px 0 24px;
  border: 1px solid var(--line);
  padding: 15px;
  font-size: 0.8rem;
}

.optional-fields summary {
  gap: 10px;
  align-items: center;
}

.optional-fields summary>span {
  color: var(--muted);
  font-size: 0.7rem;
}

.optional-fields .field {
  margin: 18px 0 0;
}

.optional-fields summary:after {
  display: none;
}

textarea {
  min-height: 130px;
}

label {
  font-size: 0.85rem;
}

input,textarea,select {
  font-size: 0.9rem;
}

.examples {
  flex-wrap: wrap;
}

.examples button {
  font-size: 0.75rem;
  min-height: 40px;
}

.download-details {
  padding: 18px 0;
  border-top: 1px solid var(--line);
}

.download-details strong {
  font-size: 0.9rem;
}

.download-details p {
  margin: 8px 0;
  font-size: 0.8rem;
  line-height: 1.7;
  color: #111111;
}

.editor-status {
  min-height: 24px;
  font-size: 0.75rem;
  color: #111111;
}

.buy {
  min-height: 54px;
  text-align: left;
  gap: 12px;
}

.zoom,.menu,.thumb {
  min-width: 44px;
  min-height: 44px;
}

nav a {
  min-height: 44px;
  display: flex;
  align-items: center;
}

.paynote {
  font-size: 0.75rem;
}

.preview-jump {
  display: none;
}

.error-message {
  color: #111111;
}

@media(max-width:1000px) and (min-width:651px) {
  header {
    flex-wrap: wrap;
    height: auto;
    min-height: 110px;
    gap: 8px;
    padding: 12px 0;
  }

  nav {
    gap: 18px;
    flex-wrap: wrap;
  }

  .hero-product {
    right: 5%;
  }

  .hero-product .homeposter {
    width: 240px;
  }

  .herocopy {
    left: 5%;
  }

  .herocopy h1 {
    font-size: 3.25rem;
  }
}

@media(max-width:650px) {
  .brand {
    font-size: 1.6rem;
  }

  header {
    gap: 12px;
  }

  .homehero {
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 35px 7% 55px;
    gap: 28px;
  }

  .homehero>img {
    position: absolute;
    inset: 0;
    object-position: center;
  }

  .homehero:after {
    background: #142011a6;
  }

  .herocopy {
    position: relative;
    inset: auto;
    transform: none;
    max-width: 100%;
  }

  .herocopy h1 {
    font-size: clamp(2.25rem,11vw,3.6rem);
    line-height: 1.06;
    margin: 18px 0;
  }

  .herocopy p {
    font-size: 0.95rem;
    line-height: 1.65;
  }

  .hero-product {
    position: relative;
    inset: auto;
    transform: none;
    align-self: center;
  }

  .hero-product .homeposter {
    width: 210px;
    padding: 28px 22px;
  }

  .hero-product .homeposter b {
    font-size: 1.9rem;
  }

  .hero-product .homeposter p {
    font-size: 0.7rem;
    line-height: 1.7;
  }

  .hero-product .homeposter small {
    margin: 10px 0 16px;
  }

  .hero-product .homeposter i {
    margin-top: 14px;
  }

  .herobottom {
    display: none;
  }

  main {
    gap: 24px;
  }

  .preview-column {
    position: relative;
    top: auto;
  }

  .visual {
    min-height: 0;
    height: 260px;
    aspect-ratio: auto;
    overflow: hidden;
  }

  .frame {
    width: 160px;
    max-width: 160px;
    padding: 5px;
  }

  .paper {
    padding: 12%;
  }

  .previewlabel {
    top: 12px;
    left: 12px;
    font-size: 0.55rem;
  }

  .visual.zoomed {
    height: 480px;
  }

  .visual.zoomed .frame {
    width: 280px;
    max-width: 80%;
  }

  .galleryroom .frame {
    width: 150px;
    transform: none;
  }

  .views {
    margin-top: 8px;
  }

  .thumb {
    width: 46px;
    height: 46px;
  }

  .viewcaption {
    font-size: 0.65rem;
    max-width: 190px;
  }

  .editor h1 {
    font-size: 2.2rem;
  }

  .editor .intro {
    font-size: 0.9rem;
    line-height: 1.65;
  }

  .sectionlabel {
    flex-wrap: wrap;
    gap: 6px;
  }

  .preview-jump {
    display: block;
    position: fixed;
    z-index: 6;
    bottom: 12px;
    right: 12px;
    border: 1px solid var(--green);
    border-radius: 24px;
    background: var(--cream);
    color: var(--green);
    padding: 11px 16px;
    box-shadow: 0 3px 14px #0002;
    font: 600 0.75rem 'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  }

  .roomcaption {
    align-items: flex-start;
  }

  .roomcaption h3 {
    font-size: 1.45rem;
  }

  .editorialintro h2,.quotecopy h2,.sectionheading h2 {
    font-size: 2.1rem;
  }

  .infohero h1 {
    font-size: 2.15rem;
    overflow-wrap: anywhere;
  }

  footer {
    padding-bottom: 80px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }

  * {
    transition: none!important;
  }
}


@media(max-width:650px) {
  .crumb { margin:12px 5%; font-size: 0.6rem; }
  .visual { height:220px; }
  .frame { width:145px; max-width:145px; }
  .editor>.eyebrow { display:none; }
  .editor h1 { font-size: 1.7rem; margin:4px 0 12px; }
  .editor .intro { display:none; }
  .editor .price { margin-bottom:14px; }
  .editor .tabs { margin-bottom:18px; }
}

/* Remote PHP/GD preview */
.remote-preview { position:relative; display:flex; align-items:center; justify-content:center; background:#e8e7df; padding:45px 24px; }
.remote-preview #poster-preview { display:block; width:100%; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.remote-preview #poster-preview[hidden] { display:none; }


.preview-status { position:absolute; z-index:1; left:18px; right:18px; bottom:12px; text-align:center; padding:5px 12px; font-size: 0.7rem; color:#111111; background:#f8f7f2ed; pointer-events:none; }
.preview-status:empty { display:none; }
.field-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#poster-form label span { color:var(--muted); font-size: 0.7rem; }
@media(max-width:650px) {
  .remote-preview { height:260px; padding:28px 12px; }
  .remote-preview #poster-preview { width:auto; max-height:100%; }
  
  
  .field-pair { gap:10px; }
}

/* Edge-to-edge server-generated image, without labels or surrounding space. */
.remote-preview { display:block; padding:0; margin:0; height:auto; min-height:0; aspect-ratio:auto; background:transparent; }
.remote-preview #poster-preview { display:block; width:100%; height:auto; max-width:100%; max-height:none; padding:0; margin:0; }



/* Full-screen product image viewer. */
#poster-preview { cursor:zoom-in; }
.poster-lightbox { position:fixed; inset:0; width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:#fff; color:var(--ink); overflow:hidden; }
.poster-lightbox::backdrop { background:#fff; }
.lightbox-close { position:absolute; z-index:2; top:16px; right:20px; display:grid; place-items:center; width:48px; height:48px; padding:0; border:0; border-radius:50%; background:#f1f1ec; color:#111111; font: 1.7rem/1 sans-serif; cursor:pointer; }
.lightbox-scroll { position:absolute; inset:72px 0 0; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.lightbox-image { display:block; width:auto; height:auto; max-width:calc(100% - 32px); max-height:calc(100vh - 96px); max-height:calc(100dvh - 96px); margin:0 auto 24px; cursor:zoom-in; }
.poster-lightbox.expanded .lightbox-image { width:min(1320px,200vw); max-width:none; max-height:none; cursor:zoom-out; }

/* Consistent black-and-white storefront. Hero photo button stays light. */

body { background:#ffffff; }
button,button:hover,button:focus-visible { background:var(--berry)!important; color:#ffffff!important; border-color:var(--berry)!important; }
.homebutton { background:var(--berry); color:#ffffff; }
.homehero .homebutton,.homehero .homebutton:hover { background:#ffffff; color:#111111; }
.menu { border-radius:0; }
.preview-jump { border-color:#111111; }
footer { background:var(--berry); color:#ffffff; }
footer p,footer h3,footer a,footer .copyright,footer .footer-grid a:not(.brand) { color:#ffffff; }
footer .copyright { border-color:#444444; }
.quotechapter,.bottomcta,.policy-note,.helpcard { background:var(--blush-light); }
.policy-note { color:#111111; border-color:#111111; }
.preview-status { color:#111111; background:#ffffffed; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline-color:#111111; }
footer a:focus-visible { outline-color:#ffffff; }

footer .footer-grid p { color:#ffffff; }
.quoteart { background:radial-gradient(at 15% 20%,#f7f7f7,#e1e1e1); }

/* Shared how-it-works section, integrated at the top of every footer. */
footer { padding:0 0 23px; }
footer .footer-steps { display:block; margin:0; padding:40px 5%; background:#ffffff; border-top:1px solid var(--line); color:#111111; }
footer .footer-steps .steps { max-width:1600px; margin:0 auto; }
footer .footer-steps .stepnumber,footer .footer-steps h3,footer .footer-steps p { color:#111111; }
footer .footer-grid { margin:0 5%; padding:50px 0 30px; }
footer .copyright { margin:34px 5% 0; }
@media(max-width:650px) {
  footer { padding-bottom:80px; }
  footer .footer-steps { padding:32px 5%; }
  footer .footer-grid { padding-top:35px; }
}

/* Sticky white navigation, almost-white pages and one consistent border colour. */

body { background:var(--cream); }
*,*::before,*::after { border-color:var(--line)!important; }
button,button:hover,button:focus-visible { border-color:var(--line)!important; }
header { position:sticky; top:0; z-index:30; width:100%; margin:0; padding:0 5%; background:#FFFFFF; border-bottom:1px solid var(--line); }
.remote-preview { border:1px solid var(--line); }
footer .footer-steps { background:var(--cream); }
input,textarea,select { background:#FFFFFF; }
input:focus,textarea:focus,select:focus { box-shadow:0 0 0 2px #1111110d; }
.editor { scroll-margin-top:140px; }
.modalback { z-index:100; }
@media(min-width:651px) {
  .preview-column { top:128px; }
}
@media(min-width:651px) and (max-width:1000px) {
  header { padding:12px 5%; }
  .preview-column { top:158px; }
}
@media(max-width:650px) {
  header { position:sticky; padding:0 5%; }
  header nav,.homepage header nav { left:0; right:0; top:100%; background:#FFFFFF; }
  .preview-column { top:auto; }
  .editor { scroll-margin-top:100px; }
}

/* Clean hamburger and a full-width vertical mobile navigation. */
header button.menu,header button.menu:hover,header button.menu:focus-visible {
  background:transparent!important; color:#111111!important; border:0!important; box-shadow:none;
  width:44px; height:44px; min-width:44px; min-height:44px; padding:10px; border-radius:0;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
header .menu span { display:block; width:24px; height:2px; flex:none; background:#111111; transform-origin:center; transition:transform .18s ease,opacity .18s ease; }
header .menu[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
header .menu[aria-expanded="true"] span:nth-child(2) { opacity:0; }
header .menu[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
@media(max-width:650px) {
  header button.menu { display:flex; }
  header #nav { display:none; position:absolute; top:100%; left:0; right:0; width:100%; padding:8px 5% 16px; margin:0; background:#FFFFFF; border-bottom:1px solid var(--line); max-height:calc(100vh - 80px); max-height:calc(100dvh - 80px); overflow-y:auto; box-shadow:0 12px 18px #11111108; }
  header #nav.open { display:flex; flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:0; }
  header #nav a { display:flex; width:100%; flex:none; min-height:60px; padding:18px 0; margin:0; font-size: 0.95rem; line-height:1.4; color:#111111; border-bottom:1px solid var(--line); }
  header #nav a:last-child { border-bottom:0; }
  header #nav a.active { font-weight:600; }
}

/* Plain photography, no decorative poster mockups or helper captions. */
.quoteart { display:block; min-height:0; overflow:hidden; background:none; }
.quoteart .interior-photo { display:block; width:100%; height:100%; min-height:480px; object-fit:cover; }
.lifestyle { overflow:hidden; background:none; }
.lifestyle .interior-photo { display:block; width:100%; height:100%; object-fit:cover; }
.herocopy { max-width:680px; }
@media(max-width:1000px) and (min-width:651px) { .herocopy { max-width:75%; } }
@media(max-width:650px) {
  .herocopy { max-width:100%; }
  .quoteart .interior-photo { min-height:0; height:360px; }
}

/* Shared 1100px content width. Section colours and hero images remain full bleed. */
:root { --content-width:1100px; --page-gutter:24px; }
header { display:block; width:100%; height:auto; min-height:0; margin:0; padding:0; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; width:calc(100% - 48px); max-width:var(--content-width); min-height:102px; margin:0 auto; }
main { width:calc(100% - 48px); max-width:var(--content-width); margin:0 auto; }
.crumb { width:calc(100% - 48px); max-width:var(--content-width); margin:28px auto 24px; }
.roomgrid,.deliverysection,.inspo-grid,.inspiration { width:calc(100% - 48px); max-width:var(--content-width); margin-left:auto; margin-right:auto; }
.infobody { width:calc(100% - 48px); max-width:850px; padding:0; margin-left:auto; margin-right:auto; }
.infohero { padding-left:max(24px,calc((100% - 1100px)/2)); padding-right:max(24px,calc((100% - 1100px)/2)); }
.herocopy { left:max(24px,calc((100% - 1100px)/2)); }
.homehero,.wideimage,.quotechapter { width:100%; max-width:none; margin-left:0; margin-right:0; }
.quotecopy { width:100%; max-width:600px; padding:64px 48px; justify-self:start; }
.widecopy { width:calc(100% - 48px); max-width:var(--content-width); margin:auto; }
footer .footer-steps { width:100%; padding-left:24px; padding-right:24px; }
footer .footer-steps .steps { width:100%; max-width:var(--content-width); margin:0 auto; }
footer .footer-grid { width:calc(100% - 48px); max-width:var(--content-width); margin:0 auto; }
footer .copyright { width:calc(100% - 48px); max-width:var(--content-width); margin:34px auto 0; }
@media(min-width:651px) and (max-width:1000px) {
  header { padding:0; min-height:0; }
  .header-inner { min-height:110px; flex-wrap:wrap; padding:12px 0; gap:8px 20px; }
}
@media(max-width:650px) {
  header { padding:0; }
  .header-inner { min-height:80px; flex-wrap:nowrap; gap:12px; padding:0; }
  header #nav { padding-left:24px; padding-right:24px; }
  .crumb { margin:12px auto; }
  .herocopy { left:auto; right:auto; width:100%; max-width:none; }
  .quotecopy { max-width:none; padding:36px 24px; }
}

/* Stable page loading and short cross-document transitions. */
html { scrollbar-gutter:stable; }
.remote-preview { aspect-ratio:3/4; }
.remote-preview #poster-preview { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
@media(min-width:651px) {
  header nav a,header nav a.active { position:relative; border-bottom:0!important; }
  header nav a.active::after { content:''; position:absolute; left:0; right:0; bottom:0; height:1px; background:#F564AA; }
}
@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:120ms; animation-timing-function:ease-out; }
@media(prefers-reduced-motion:reduce) {
  @view-transition { navigation:none; }
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}

/* Consistent light lines, softer fields and a matching enlarged-image backdrop. */

.poster-lightbox,.poster-lightbox::backdrop,.lightbox-scroll { background:var(--cream); }
.lightbox-image { border:1px solid var(--line); }
.remote-preview { border:1px solid var(--line); }
input,textarea { border-radius:4px; }

/* All controls use the same 16px corners. Extras are always visible. */
input,textarea,select,button,.homebutton,.buy,.clear-draft,.preview-jump { border-radius:16px!important; }
.infohero { border-top:0!important; }

/* Tighter headings, level inspiration grid, 10px controls and sage footer. */
h1,h2 { letter-spacing:-0.045em!important; font-kerning:normal; }
h3,h4,h5,h6 { letter-spacing:-1px!important; font-kerning:normal; }
.inspo-grid { align-items:start; }
.inspo-grid article:nth-child(even) { padding-top:0; }
input,textarea,select,button,.homebutton,.buy,.clear-draft,.preview-jump { border-radius:10px!important; }
.fieldhead { gap:10px; align-items:baseline; }
.fieldhead label { min-width:0; }
.fieldhead .count { flex-shrink:0; white-space:nowrap; font-variant-numeric:tabular-nums; }
footer { background:var(--blush); }
footer .footer-steps { background:var(--blush-light); border-top:0; }
footer,footer .footer-grid,footer .footer-grid p,footer .footer-grid h3,footer .footer-grid a,footer .footer-grid a:not(.brand),footer .copyright,footer .copyright a { color:#111111; }
footer a:hover,footer .footer-grid a:hover,footer .footer-grid a:not(.brand):hover,footer .copyright a:hover { color:#FFFFFF; }
footer a:focus-visible { outline-color:#111111; }

/* Free PDF / printed alternative. */
.print-upgrade { margin:20px 0; text-align:center; }

/* Compact sticky navigation. */
.header-inner { min-height:82px; }
@media (min-width:651px) and (max-width:900px) { .header-inner { min-height:90px; } }
@media (max-width:650px) { .header-inner { min-height:60px; } }

/* Balanced product headings: larger on phones, calmer on desktop. */
.editor h1 { font-size: clamp(2rem, calc(1.7rem + 1.5vw), 2.85rem); line-height:1.08; }

/* Product content spacing without breadcrumbs. */
.product-main { margin-top:48px; column-gap:max(16px,calc(7% - 20px)); }
@media (max-width:650px) { .product-main { margin-top:48px; } }

/* Readable footer and supporting text. */
.footer-grid h3 { font-size: 1.1rem; line-height:1.3; margin-bottom:18px; }
.footer-grid a:not(.brand),.footer-grid p { font-size: 0.9rem; line-height:1.75; }
.copyright { font-size: 0.8rem; line-height:1.7; }
nav a,.editor .tabs a,.field label,.buy,.homebutton { font-size: 0.9rem; }
.editor .intro { font-size: 1rem; line-height:1.7; }
/* Simple rotating messages and hero. [hidden] always wins over layout rules. */
[data-slide][hidden] { display:none!important; }
.announcement { position:relative; padding:11px 48px; min-height:46px; display:flex; align-items:center; justify-content:center; }
.announcement-items { max-width:1100px; }
.announcement-items a { display:block; font-size: 0.75rem; line-height:1.5; }
.announcement-toggle { position:absolute; right:10px; top:50%; transform:translateY(-50%); }
.announcement .carousel-toggle { padding:0; width:30px; height:30px; border:0!important; background:transparent!important; color:white; font-size: 0.9rem; }
.homehero { padding:0; display:block; height:680px; min-height:0; }
.homehero:after { display:none; }
.hero-slide { position:relative; width:100%; height:100%; }
.hero-slide>picture>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-slide:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.57),rgba(0,0,0,.14)); }
.hero-slide .herocopy { position:absolute; z-index:2; top:50%; left:max(24px,calc((100% - 1100px)/2)); right:auto; width:50%; transform:translateY(-50%); max-width:min(740px,50%); text-align:left; }
.hero-slide .herocopy h1,.hero-slide .herocopy h2 { font-size: clamp(2.55rem,6.5vw,4.4rem); line-height:1.05; font-weight:600; margin:0 0 28px; color:white; letter-spacing:-.045em!important; }
.hero-slide .herocopy p { font-size: 1.05rem; line-height:1.65; max-width:480px; }
.hero-controls { position:absolute; z-index:3; bottom:20px; right:max(24px,calc((100% - 1100px)/2)); display:flex; align-items:center; gap:12px; color:white; font-size: 0.85rem; }
.hero-controls button { width:44px; height:44px; padding:0; border:0!important; background:#111111; color:white; font-size: 1.05rem; }
@media(max-width:650px) {
 .announcement-items a { font-size: 0.65rem; }
 .announcement { min-height:58px; padding:9px 44px; }
 .homehero { height:560px; padding:0; }
 .hero-slide .herocopy { left:24px; right:24px; width:auto; max-width:none; }
 .hero-slide .herocopy h1,.hero-slide .herocopy h2 { font-size: clamp(2.1rem,10vw,3.15rem); }
 .hero-slide .herocopy p { font-size: 0.95rem; }
 .footer-grid h3 { font-size: 1.05rem; }
}

/* Selected print price beside the ordering area. */
.print-total { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:12px 0; }
.print-total strong { font-size: 1.35rem; font-weight:600; color:#111111; }
.print-total span { font-size: 0.9rem; color:#111111; }

.physical:not([hidden]) { display:block; }

.checkout-approval { font-size: 0.9rem; line-height:1.6; margin:18px 0; }
.checkout-approval input { width:20px; height:20px; vertical-align:middle; margin-right:8px; }
.checkout-approval a { text-decoration:underline; }
.buy:disabled { opacity:.65; cursor:wait; }

/* Contact: direct email support. */
.contact-hero { padding-top:64px; padding-bottom:44px; }
.contact-hero>p { max-width:590px; }
.contact-page { max-width:1100px; margin-bottom:88px; }
.contact-mail { background:var(--blush); border:1px solid #CCC; border-radius:10px; padding:44px; text-align:center; }
.contact-mail h2 { font-size: clamp(1.6rem,4vw,2.3rem); margin:12px 0 16px; }
.contact-mail>p { max-width:570px; margin:0 auto 24px; color:#111111; }
.contact-page a.contact-email-button { display:inline-flex; gap:56px; align-items:center; justify-content:space-between; padding:18px 24px; background:var(--berry); color:#FFF; border-radius:10px; text-decoration:none; font-size: 0.95rem; }
.contact-page a.contact-email-button:hover { background:var(--berry-hover); }
.contact-page a:focus-visible { outline:3px solid #111; outline-offset:5px; }
.contact-mail p.contact-email-address { margin:16px auto 0; font-size: 0.9rem; overflow-wrap:anywhere; }
.contact-help { padding:44px 0; }
.contact-help h2 { font-size: 1.6rem; margin:0 0 24px; }
.contact-link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.contact-page .contact-link-grid>a { display:flex; flex-direction:column; gap:14px; padding:24px; border:1px solid #CCC; border-radius:10px; text-decoration:none; color:#111111; font-size: 0.9rem; line-height:1.65; }
.contact-link-grid>a:hover { background:#f0f0f0; }
.contact-link-title { display:flex; justify-content:space-between; gap:14px; font-size: 1.1rem; font-weight:600; line-height:1.25; }
.contact-business { border-top:1px solid #CCC; padding-top:30px; }
.contact-business h2 { font-size: 1.3rem; margin:0 0 20px; }
.contact-business>div { display:flex; flex-wrap:wrap; gap:20px 64px; }
.contact-business>div>p { margin:0; }
.contact-business .contact-return-note { margin-top:24px; font-size: 0.85rem; }
@media(max-width:760px) { .contact-hero { padding-top:40px; padding-bottom:28px; } .contact-mail { padding:28px 22px; } .contact-link-grid { grid-template-columns:1fr; gap:12px; } .contact-help { padding:32px 0; } .contact-business>div { flex-direction:column; gap:16px; } .contact-page { margin-bottom:50px; } }

.contact-form-section { padding:40px 0 0; }
.contact-form-section h2 { font-size: 1.7rem; margin:0 0 24px; }
.studio-contact-form label { display:flex; flex-direction:column; gap:10px; font-size: 0.95rem; color:#111111; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:24px; }
.studio-contact-form input,.studio-contact-form textarea { width:100%; box-sizing:border-box; background:#FFF; color:#111111; border:1px solid #CCC; border-radius:10px; padding:16px; font: inherit; font-size: 0.95rem; }
.studio-contact-form textarea { resize:vertical; min-height:160px; }
.studio-contact-form input:focus,.studio-contact-form textarea:focus { outline:2px solid #111; outline-offset:2px; }
.contact-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-page .contact-form-note { font-size: 0.85rem; margin:18px 0; }
.contact-submit { display:inline-flex; justify-content:space-between; align-items:center; gap:64px; border:0; border-radius:10px; background:var(--berry); color:#FFF; padding:18px 24px; font: inherit; font-size: 0.95rem; cursor:pointer; }
.contact-submit:hover { background:var(--berry-hover); }
.contact-submit:focus-visible { outline:3px solid #111; outline-offset:4px; }
.contact-page .contact-success { background:var(--blush); color:#111111; padding:20px; border-radius:10px; }
.contact-page .contact-error { background:#FDEDF6; color:#111111; padding:20px; border-radius:10px; }
@media(max-width:760px) { .contact-fields { grid-template-columns:1fr; gap:20px; } .contact-form-section { padding-top:30px; } .contact-submit { width:100%; } }

/* Consistent readable text; white text is retained on dark surfaces. */
input::placeholder,textarea::placeholder { color:#111111; opacity:1; }

/* Character counters match the footer. */
#poster-form .count {
  display:inline-block;
  flex-shrink:0;
  background:var(--blush);
  color:#111111;
  padding:3px 7px;
  border-radius:6px;
  line-height:1.25;
}

/* Clear labels without decorative arrows; larger FAQ toggles. */
summary::after { font-size: 1.45rem; line-height:1; min-width:28px; text-align:center; flex-shrink:0; margin-left:16px; }
.buy,.homebutton,.contact-submit { justify-content:center; gap:0; }

/* Footer separator and hero contrast. */
footer .copyright { border-top:0!important; }
.homehero .herocopy,.homehero .herocopy h1,.homehero .herocopy h2,.homehero .herocopy em,.homehero .herocopy p { color:#ffffff; }
.homehero.hero-fade-ready .hero-slide { position:absolute; inset:0; display:block; opacity:0; pointer-events:none; transition:opacity 500ms ease; z-index:0; }
.homehero.hero-fade-ready .hero-slide.is-active { opacity:1; pointer-events:auto; z-index:1; }
.hero-dots { position:absolute; z-index:5; right:18px; top:50%; transform:translateY(-50%); display:flex; flex-direction:column; }
.homehero .hero-dots button { display:grid; place-items:center; width:44px; height:36px; padding:0; background:transparent!important; border:0!important; border-radius:0; cursor:pointer; }
.hero-dots button::before { content:''; display:block; width:7px; height:7px; border-radius:50%; background:#ffffff; border:1px solid #ffffff!important; }
.hero-dots button[aria-current="true"]::before { width:13px; height:13px; background:transparent; }
.homehero .hero-dots button:focus-visible { outline:2px solid #ffffff; outline-offset:-3px; }
@media(max-width:650px) { .hero-dots { right:4px; } .homehero .herocopy { padding-right:48px; } }
@media(prefers-reduced-motion:reduce) { .homehero.hero-fade-ready .hero-slide { transition:none; } }

/* Air around the footer content and copyright row. */
footer { padding-bottom:0; }
footer .footer-grid { padding-top:72px; padding-bottom:48px; }
footer .copyright { margin-top:0; padding-top:28px; padding-bottom:40px; }
@media(max-width:650px) {
  footer { padding-bottom:64px; }
  footer .footer-grid { padding-top:48px; padding-bottom:32px; }
  footer .copyright { padding-top:24px; padding-bottom:32px; }
}

/* Slide colours come from data/home-slides.json. */
.homehero .herocopy,.homehero .herocopy h1,.homehero .herocopy h2,.homehero .herocopy em,.homehero .herocopy p { color:var(--slide-text,#FFFFFF); }
.homehero .hero-slide .homebutton,.homehero .hero-slide .homebutton:hover { background:var(--slide-button,#FFFFFF); color:var(--slide-button-text,#111111); }
@media(max-width:900px) {
  .homehero .hero-slide .herocopy { left:24px; right:24px; width:auto; max-width:none; padding:0 0 32px; text-align:center; }
  .homehero .hero-slide .herocopy p { margin-left:auto; margin-right:auto; }
  .homehero .hero-dots { top:auto; bottom:18px; left:50%; right:auto; transform:translateX(-50%); flex-direction:row; }
  .homehero .hero-dots button { width:36px; height:44px; }
}

/* Horizontal swipe/drag, while retaining vertical page scrolling. */
.homehero { touch-action:pan-y pinch-zoom; cursor:grab; }
.homehero .hero-slide { user-select:none; -webkit-user-select:none; }
.homehero .hero-slide img { -webkit-user-drag:none; }
.homehero.is-dragging,.homehero.is-dragging * { cursor:grabbing; }

/* Consistent subtle zoom for interior photography only. */
.inspo-photo { overflow:hidden; }
.homepage .roomphoto>img,.homepage .quoteart>img,.homepage .deliveryphoto>img,.homepage .wideimage>img,.homepage .hero-slide>picture>img,.inspo-photo>img,.lifestyle>img.interior-photo { transition:transform .8s ease; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .homepage .roomphoto:hover>img,.homepage .quoteart:hover>img,.homepage .deliveryphoto:hover>img,.homepage .wideimage:hover>img,.homepage .hero-slide:hover>picture>img,.inspo-photo:hover>img,.lifestyle:hover>img.interior-photo { transform:scale(1.03125); }
}

.hero-slide>picture { display:block; position:absolute; inset:0; overflow:hidden; }

/* Gift stories: warm editorial rhythm, familiar type and simple links. */
.gift-stories { width:calc(100% - 48px); max-width:1100px; margin:0 auto 5rem; }
.gift-story { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4rem; margin-bottom:5rem; }
.story-photo { display:block; overflow:hidden; }
.story-photo img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; transition:transform .8s ease; }
.story-copy h2 { font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.12; margin:1rem 0 1.25rem; }
.story-copy p { font-size:1rem; line-height:1.8; margin:0 0 1.5rem; color:#111111; }
.story-copy .eyebrow { line-height:1.6; }
.gift-story:nth-child(even) .story-photo { order:2; }
.gift-invitation { max-width:44rem; padding:0 1.25rem; margin:0 auto 5rem; text-align:center; }
.gift-invitation h2 { font-size:2.5rem; line-height:1.15; }
.gift-invitation p,.bottomcta>p { line-height:1.8; max-width:38rem; margin:1rem auto 1.5rem; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) { .story-photo:hover img { transform:scale(1.03125); } }
@media(max-width:800px) { .gift-story { gap:2rem; } }
@media(max-width:650px) {
 .gift-story { grid-template-columns:1fr; gap:1.5rem; margin-bottom:3.5rem; }
 .gift-story:nth-child(even) .story-photo { order:0; }
 .gift-stories { margin-bottom:3rem; }
 .gift-invitation h2 { font-size:2rem; }
}

/* Keep gift photography warm and the hero copy readable at both layouts. */
.homehero .hero-slide::after { background:linear-gradient(90deg,rgba(0,0,0,.08),transparent 70%); }
@media(max-width:900px) {
 .homehero .hero-slide::after { background:rgba(67,29,43,.52); }
}

/* Product FAQ shares the Good to know accordion styles. */
.product-faq { margin-top:4rem; margin-bottom:4.5rem; }
.product-faq .eyebrow { line-height:1.6; }
.product-faq #product-faq-heading { margin-top:1rem; }
@media(max-width:650px) { .product-faq { margin-top:3rem; margin-bottom:3rem; } }

/* Shared brand finish: navigation, forms, actions, imagery and help states. */
body { background:var(--cream); color:var(--ink); }
header,.header-inner,header #nav { background:var(--surface); }
.announcement { background:var(--berry); color:#FFFFFF; }
.brand,header nav a { color:var(--berry); }
header nav a:hover,header nav a.active { color:var(--berry-hover); }
header .menu span { background:var(--berry); }
.homehero { background:var(--blush); border-radius:0 0 1.25rem 1.25rem; }
footer { background:var(--blush); }
footer .brand,footer .footer-grid h3 { color:var(--berry); }
footer a:hover,footer .footer-grid a:hover,footer .footer-grid a:not(.brand):hover,footer .copyright a:hover { color:var(--berry-hover); }
.homebutton,.buy,.contact-submit,.clear-draft,.preview-jump { border-radius:.65rem!important; }
.homebutton:hover { background:var(--berry-hover); color:#FFFFFF; }
button:hover,button:focus-visible { background:var(--berry-hover)!important; }
header button.menu:hover,header button.menu:focus-visible { background:var(--blush-light)!important; }
.homehero .hero-dots button:hover,.homehero .hero-dots button:focus-visible { background:transparent!important; }
.homehero .hero-slide .homebutton { background:var(--slide-button,var(--blush-light)); color:var(--slide-button-text,var(--berry)); }
.homehero .hero-slide .homebutton:hover { background:#FFFFFF; color:var(--berry-hover); }
input,textarea,select,.studio-contact-form input,.studio-contact-form textarea { background:var(--surface); border-color:var(--line)!important; border-radius:.65rem!important; }
input:focus,textarea:focus,select:focus { outline-color:var(--berry); box-shadow:0 0 0 .15rem #11111118; }
input[type=checkbox],input[type=radio] { accent-color:var(--berry); }
.textlink,.infobody a,.story-copy a,.gift-invitation a { text-decoration-color:var(--berry); border-bottom-color:var(--line)!important; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline-color:var(--berry); }
.roomphoto,.quoteart,.deliveryphoto,.wideimage,.lifestyle,.inspo-photo,.story-photo { overflow:hidden; border-radius:var(--photo-radius); }
.roomphoto>img,.quoteart>img,.deliveryphoto>img,.wideimage>img,.lifestyle>img,.inspo-photo>img,.story-photo>img { border-radius:inherit; }
.bottomcta,.policy-note,.helpcard,.contact-help,.contact-page .contact-success { background:var(--blush-light); }
.bottomcta { padding:3.5rem 1.25rem; }
.contact-link-grid>a:hover { background:var(--blush-light); }
.modal,.modalbox,.modalcontent { background:var(--surface); border-radius:1rem; }
.faqbody details { border-color:var(--line)!important; }
.faqbody summary:hover,.faqbody details[open] summary { color:var(--berry); }
#poster-form .count { background:var(--blush); }
.editor .tabs a.active { background:var(--berry); color:#FFFFFF; }
.preview-status { background:#FFFCFAED; }
.contact-page .contact-error { background:var(--blush-light); }
@media(prefers-reduced-motion:reduce) { .story-photo img { transition:none; } }

/* Cozy gift-store finish, drawn from the supplied powder-pink/plum references. */
h1,h2,h3,.brand { color:var(--berry); }
.eyebrow { color:var(--berry); }
.announcement { background:var(--blush); color:var(--berry); }
.announcement a { color:var(--berry); }
.homehero { width:calc(100% - 36px); margin:18px auto 0; border-radius:1.5rem; background:var(--blush); }
.homehero .hero-slide::after { background:none; }
.homehero .herocopy em { font-family:Georgia,serif; font-weight:400; letter-spacing:-.04em!important; }
.homehero .hero-slide .homebutton,.homehero .hero-slide .homebutton:hover { background:var(--berry); color:var(--blush); }
.homehero .hero-dots button::before { background:var(--berry); border-color:var(--berry)!important; }
.homehero .hero-dots button[aria-current="true"]::before { background:transparent; }
.homehero .hero-dots button:focus-visible { outline-color:var(--berry); }
.homebutton,.buy,.contact-submit,.clear-draft,.preview-jump { border-radius:999px!important; }
button,.homebutton { transition:background-color .2s ease,color .2s ease; }
.homebutton { background:var(--berry); color:var(--blush); }
.story-copy { padding:1.75rem; background:var(--oat); border-radius:1.25rem; }
.gift-story:nth-child(3n + 2) .story-copy { background:var(--blush-light); }
.gift-story:nth-child(3n) .story-copy { background:var(--sage); }
.gift-story { gap:2.5rem; }
.story-copy .eyebrow { font-size:.6rem; letter-spacing:.12em; }
.story-copy h2 { font-weight:500; }
.bottomcta { width:calc(100% - 36px); margin:0 auto 1rem; border-radius:1.5rem; background:var(--blush); padding:4rem 1.5rem; }
footer { width:calc(100% - 36px); margin:18px auto; border-radius:1.5rem; background:var(--berry); overflow:hidden; }
footer,footer .brand,footer .footer-grid,footer .footer-grid p,footer .footer-grid h3,footer .footer-grid a,footer .footer-grid a:not(.brand),footer .copyright,footer .copyright a { color:var(--blush); }
footer a:hover,footer .footer-grid a:hover,footer .footer-grid a:not(.brand):hover,footer .copyright a:hover { color:#FFFFFF; }
footer a:focus-visible { outline-color:var(--blush); }
footer .copyright { padding-top:2rem; padding-bottom:2.5rem; }
.contact-help,.contact-page .contact-success,.policy-note { background:var(--blush-light); border-radius:1rem; }
#poster-form .count { background:var(--blush); color:var(--berry); }
@media(max-width:900px) { .homehero .hero-slide::after { background:rgba(245,220,229,.82); } }
@media(max-width:650px) {
 .homehero { width:calc(100% - 20px); margin-top:10px; border-radius:1rem; }
 .homehero .hero-slide .herocopy { left:18px; right:18px; }
 .story-copy { padding:1.5rem; }
 .gift-story { gap:1rem; }
 footer,.bottomcta { width:calc(100% - 20px); border-radius:1rem; }
 footer { margin:10px auto; }
}

/* White page, white action labels and matching plum announcement/footer. */
html,body,header,.header-inner,header #nav { background:#FFFFFF; }
.announcement { background:var(--berry); color:#FFFFFF; }
.announcement a { color:#FFFFFF; }
.homebutton,.homebutton:hover,.buy,.buy:hover,.contact-submit,.clear-draft,.preview-jump,
.homehero .hero-slide .homebutton,.homehero .hero-slide .homebutton:hover { color:#FFFFFF; }
footer,footer .brand,footer .footer-grid,footer .footer-grid p,footer .footer-grid h3,
footer .footer-grid a,footer .footer-grid a:not(.brand),footer .copyright,footer .copyright a { color:#FFFFFF; }
footer a:focus-visible { outline-color:#FFFFFF; }

/* Story pairs share one height; copy determines the row when it needs more room. */
@media(min-width:651px) {
 .gift-story { align-items:stretch; }
 .gift-story .story-photo { position:relative; min-height:0; }
 .gift-story .story-photo img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
 .gift-story .story-copy { min-height:calc((min(1100px, 100vw - 48px) - 2.5rem) * .375); display:flex; flex-direction:column; justify-content:center; }
 .gift-story .story-copy .textlink { align-self:flex-start; }
}

/* Full-width photography and footer, without inset white gutters. */
.homehero { width:100%; max-width:none; margin:0; border-radius:0; }
footer { width:100%; max-width:none; margin:0; border-radius:0; }
.homehero .hero-slide::after { background:linear-gradient(90deg,rgba(25,15,24,.72),rgba(25,15,24,.18)); }
.homehero .hero-dots button::before { background:#FFFFFF; border-color:#FFFFFF!important; }
.homehero .hero-dots button[aria-current="true"]::before { background:transparent; }
.homehero .hero-dots button:focus-visible { outline-color:#FFFFFF; }
.bottomcta { position:relative; width:100%; max-width:none; margin:0; border-radius:0; padding:5rem 1.25rem; background:linear-gradient(rgba(35,20,31,.64),rgba(35,20,31,.64)),url('/img/warm-together-wide.webp') center 42%/cover no-repeat; color:#FFFFFF; }
.bottomcta h2,.bottomcta p,.bottomcta .textlink { color:#FFFFFF; }
.bottomcta h2 { max-width:50rem; margin-left:auto; margin-right:auto; }
@media(max-width:900px) { .homehero .hero-slide::after { background:rgba(25,15,24,.55); } }
@media(max-width:650px) {
 .homehero,footer,.bottomcta { width:100%; margin:0; border-radius:0; }
 .bottomcta { padding:3.5rem 1.25rem; }
}

/* Contact help: three separate soft cards, without enclosing panels or rules. */
.contact-page .contact-form-section,.contact-page .contact-help,.contact-page .contact-business { border:0!important; box-shadow:none; }
.contact-page .contact-help { background:transparent; padding:3rem 0; border-radius:0; }
.contact-page .contact-link-grid { gap:1rem; align-items:stretch; }
.contact-page .contact-link-grid>a { background:var(--oat); border:0!important; border-radius:1rem; padding:1.75rem; gap:1rem; }
.contact-page .contact-link-grid>a:nth-child(2) { background:var(--blush-light); }
.contact-page .contact-link-grid>a:nth-child(3) { background:var(--sage); }
.contact-page .contact-link-title { color:var(--berry); font-size:1.4rem; line-height:1.15; font-weight:500; }
.contact-card-label { color:var(--berry); font-size:.65rem; letter-spacing:.08em; margin-bottom:.5rem; }
.contact-card-cta { color:var(--berry); font-size:.75rem; margin-top:auto; padding-top:.75rem; }
.contact-page .contact-business { padding-top:1rem; }

/* Joined photo/copy panels: no seams across columns or stacked rows. */
.gift-stories { overflow:hidden; border-radius:var(--photo-radius); }
.gift-story { gap:0; margin-bottom:0; }
.gift-story .story-photo,.gift-story .story-copy,.gift-story .story-photo img { border-radius:0; }
.quotechapter,.inspiration { gap:0; }
.quotechapter>.quoteart,.quotechapter>.quotecopy,.inspiration>.lifestyle { border-radius:0; margin:0; }
.deliverygrid article { overflow:hidden; border-radius:var(--photo-radius); background:var(--oat); }
.deliverygrid article:nth-child(even) { background:var(--blush-light); }
.deliverygrid article .deliveryphoto { border-radius:0; margin:0; }
.deliverygrid article .deliverycopy { padding:1.75rem; margin:0; }
@media(min-width:651px) {
 .gift-story .story-copy { min-height:calc(min(1100px, 100vw - 48px) * .375); }
}
@media(max-width:650px) {
 .gift-story { gap:0; margin-bottom:0; }
 .gift-story .story-photo,.gift-story .story-copy { margin:0; border-radius:0; }
 .quotechapter,.inspiration { gap:0; }
}

/* Each joined photo/text pair is its own airy, rounded section. */
.gift-stories { overflow:visible; border-radius:0; }
.gift-story { gap:0; margin-bottom:3.5rem; overflow:hidden; border-radius:var(--photo-radius); }
.gift-story:last-child { margin-bottom:0; }
.gift-story .story-photo,.gift-story .story-photo img,.gift-story .story-copy { border-radius:0; }
@media(max-width:650px) {
 .gift-story { gap:0; margin-bottom:2.5rem; border-radius:var(--photo-radius); }
 .gift-story:last-child { margin-bottom:0; }
}

/* Quiet text-only closing invitation, matching the editorial introduction. */
.closing-invitation { background:transparent; padding:4rem 1.25rem; margin:0 auto; }
.closing-invitation h2 { font-size:clamp(1.8rem,3vw,2.5rem); line-height:1.15; margin:0 0 1.5rem; }
.closing-invitation p { color:#111111; margin:0 auto 2rem; }
.closing-invitation .textlink { color:#111111; }

/* Small outlined buttons for editorial calls to action. */
a.textlink {
  display:inline-block;
  width:fit-content;
  max-width:100%;
  padding:0.6rem 1rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:#FFFFFF;
  color:#111111;
  font-size:0.88rem;
  line-height:1.4;
  text-decoration:none;
  text-align:center;
}
a.textlink:visited,a.textlink:hover,a.textlink:focus-visible { color:#111111; background:#FFFFFF; }
a.textlink:focus-visible { outline:2px solid var(--berry); outline-offset:3px; }
@media(max-width:650px) { .closing-invitation { padding:3rem 1.25rem; } }

/* Product choices share the small white outlined button treatment. */
.editor .tabs { border:0; gap:0.75rem; flex-wrap:wrap; }
.editor .tabs a {
  width:auto;
  flex:1 1 auto;
  padding:0.6rem 1rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:#FFFFFF;
  color:#111111;
  font-size:0.88rem;
  line-height:1.4;
  text-decoration:none;
}
.editor .tabs a.active { background:#FFFFFF; color:#111111; border:1px solid var(--berry); box-shadow:inset 0 0 0 1px var(--berry); }
.editor .tabs a:focus-visible { outline:2px solid var(--berry); outline-offset:3px; }

/* A calm, readable contact invitation after the FAQ. */
.faq-contact-card {
  margin:3rem 0 4rem;
  padding:2rem;
  border-radius:var(--photo-radius);
  background:var(--oat);
  color:#111111;
  text-align:left;
}
.faq-contact-card h2 { margin:0 0 1rem; font-size:1.5rem; line-height:1.2; color:var(--berry); }
.faq-contact-card p { max-width:34rem; margin:0 0 1.5rem; font-size:1rem; line-height:1.7; color:#111111; }
.faq-contact-card .textlink { margin-top:0; }
@media(max-width:650px) { .faq-contact-card { padding:1.5rem; margin:2.5rem 0 3rem; } }

/* Keep both inspiration choices centered with deliberate, even spacing. */
.invitation-options { display:flex; flex-direction:column; align-items:center; gap:2rem; }
.invitation-option { display:flex; flex-direction:column; align-items:center; gap:0.75rem; }
.closing-invitation .invitation-option p { margin:0; }
.closing-invitation .invitation-option .textlink { margin:0; }

/* Pink punctuation shared by all headings. */
:root { --heading-dot:#F564AA; }
h1 .heading-dot,h2 .heading-dot,h3 .heading-dot,h4 .heading-dot,h5 .heading-dot,h6 .heading-dot { color:var(--heading-dot); }

/* Soft, borderless fields throughout the site; keep existing corner radii. */
:root { --field-background:#F0EEE7; }
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=hidden]):not([type=range]):not([type=color]):not([type=image]),
textarea,select,
.studio-contact-form input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]),
.studio-contact-form textarea {
  background:var(--field-background);
  border:0!important;
  color:#111111;
}

/* Product controls: white by default, solid plum when selected. */
.editor .examples { flex-wrap:wrap; gap:0.5rem; }
.editor .examples button {
  background:#FFFFFF!important;
  color:#111111!important;
  border:1px solid var(--line);
  border-radius:999px!important;
  padding:0.6rem 1rem;
  font-size:0.88rem;
  line-height:1.4;
}
.editor .examples button:hover { background:#FFFFFF!important; color:#111111!important; border-color:var(--berry)!important; }
.editor .tabs a.active,.editor .examples button.active,.editor .examples button[aria-pressed=true] {
  background:var(--berry)!important;
  color:#FFFFFF!important;
  border:1px solid var(--berry);
  box-shadow:none;
}
.editor .examples button:focus-visible { outline:2px solid var(--berry); outline-offset:3px; }

/* Clear product routes near the top, keeping the warm editorial layout. */
.homehero .hero-secondary { margin:0.75rem 0 0 0.5rem; vertical-align:middle; }
.home-choices { max-width:1100px; margin:3rem auto 4rem; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.home-choices>div { background:var(--oat); padding:1.75rem; border-radius:var(--photo-radius); }
.home-choices>div:nth-child(2) { background:var(--blush-light); }
.home-choices h2 { font-size:1.5rem; line-height:1.2; margin:0 0 1rem; }
.home-choices p { font-size:0.95rem; line-height:1.65; margin:0 0 0.75rem; }
.home-choices .home-delivery-note { grid-column:1/-1; text-align:center; max-width:42rem; margin:0 auto; }
.home-delivery-note a { text-decoration:underline; }
@media(max-width:900px) { .homehero .hero-secondary { margin:0.75rem 0 0; } }
@media(max-width:650px) { .home-choices { grid-template-columns:1fr; gap:1.25rem; margin:2rem auto 3rem; } }

/* Dynamic design fields stay full width. */
#design-fields .field,#design-fields input,#design-fields textarea { width:100%; box-sizing:border-box; }
#poster-form #design-fields textarea { height:auto; min-height:0; max-height:none; overflow-y:hidden; resize:none; }

/* Pink identifies editable poster content; configuration selects stay oat. */
#poster-form #design-fields input,
#poster-form #design-fields textarea,
#poster-form #design-fields .count {
  background:var(--blush-light);
}

/* Editable poster text: soft green fields and plum counters. */
#poster-form #design-fields input,
#poster-form #design-fields textarea { background:var(--sage); }
#poster-form #design-fields .count { background:var(--berry); color:#FFFFFF; }

/* Product selectors share the plum control style and an inset white arrow. */
.editor select {
  appearance:none;
  -webkit-appearance:none;
  background-color:var(--berry);
  color:#FFFFFF;
  padding-right:2.75rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23FFFFFF' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  background-size:1rem;
}
.editor select option,.editor select optgroup { background:var(--berry); color:#FFFFFF; }

/* A quieter editor: one strong action, calm choices and unobtrusive counts. */
.editor select {
  background-color:var(--oat);
  color:#111111;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23111111' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.editor select option,.editor select optgroup { background:#FFFFFF; color:#111111; }
.editor .tabs a.active { background:var(--oat)!important; color:var(--berry)!important; border-color:var(--berry)!important; font-weight:600; }
#poster-form #design-fields .count { background:var(--heading-dot); color:#FFFFFF; border-radius:6px; padding:2px 6px; font-family:'Bricolage Grotesque','Bricolage Fallback',sans-serif; font-weight:400; }
.editor .download-details { border:0; padding:0.5rem 0 0; }
.editor .download-details .field { margin-bottom:1rem; }
.editor .editor-status:empty { display:none; }
.editor .buy { margin-top:0.5rem; }

/* Selected product mode is marked by its fill alone. */
.editor .tabs a.active { border-color:transparent!important; box-shadow:none; }

/* A fine outline separates the paper from the page. */
.visual.remote-preview {
  border:1px solid var(--line)!important;
  box-shadow:none;
}
.visual.remote-preview #poster-preview { border:0!important; }

/* Page background sampled from the supplied reference. */
html,body { background:#FCFAFB; }

/* White edges separate editor controls from the page background. */
.editor #design-fields input,
.editor #design-fields textarea,
.editor select,
.editor .tabs a.active { border:1px solid #FFFFFF!important; }

/* White form controls and a white selected product mode. */
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]):not([type=hidden]):not([type=range]):not([type=color]):not([type=image]),
textarea,select,
.studio-contact-form input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]),
.studio-contact-form textarea,
.editor #design-fields input,
.editor #design-fields textarea,
.editor select {
  background-color:#FFFFFF!important;
  border:1px solid var(--line)!important;
  color:#111111;
}
.editor .tabs a { background:var(--oat)!important; border:1px solid transparent!important; color:#111111!important; }
.editor .tabs a.active { background:#FFFFFF!important; border:1px solid var(--line)!important; color:#111111!important; box-shadow:none; }

/* Pink primary actions use the true Bold face. */
.homehero .hero-slide .homebutton,
.homehero .hero-slide .homebutton:hover,
.homehero .hero-slide .homebutton:focus-visible,
.editor #buy,
.editor #buy:hover,
.editor #buy:focus-visible {
  background:#F564AA!important;
  color:#FFFFFF!important;
  font-family:'BricolageGrotesque-Bold',sans-serif;
  font-weight:700;
}

/* Sticky navigation has no bottom rule. */
header { border-bottom:0!important; box-shadow:0 3px 12px rgba(17,17,17,0.06); }

/* Consistent circular expand/collapse indicators throughout the FAQs. */
/* Simple sage footer with black text throughout. */
footer { background:var(--sage)!important; }
footer * { color:#111111!important; }
footer,footer .footer-grid,footer p,footer .footer-grid p,
footer a,footer .brand,footer .footer-grid a,footer .footer-grid a:not(.brand),
footer .copyright,footer .copyright a,
footer a:hover,footer .footer-grid a:hover,footer .footer-grid a:not(.brand):hover,footer .copyright a:hover {
  color:#111111!important;
  font-family:'Bricolage Grotesque','Bricolage Fallback',sans-serif;
  font-weight:400!important;
}
footer h2,footer h3,footer h4,footer .footer-grid h3 {
  letter-spacing:0.01em!important;
  color:#111111!important;
  font-family:'BricolageGrotesque-Bold',sans-serif;
  font-weight:700!important;
}
footer a:focus-visible { outline-color:#111111; }

/* Compact white pills for the three footer utility links. */
footer .copyright > span:last-child { display:flex; flex-wrap:wrap; gap:0.6rem; }
footer .copyright a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  margin:0;
  padding:0.6rem 1.1rem;
  background:#FFFFFF;
  border:0!important;
  border-radius:999px;
  text-decoration:none;
  line-height:1.3;
}

.faq summary,.faqbody summary { align-items:center; }
.faq summary::after,.faqbody summary::after {
  content:'';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  min-width:28px;
  padding:0;
  border:0;
  border-radius:50%;
  background:linear-gradient(#FFFFFF,#FFFFFF) center / 10px 2px no-repeat,
             linear-gradient(#FFFFFF,#FFFFFF) center / 2px 10px no-repeat,
             #111111;
  color:#FFFFFF;
  font-size:20px;
  font-weight:400;
  line-height:1;
  flex-shrink:0;
}
.faq details[open] summary::after,.faqbody details[open] summary::after {
  content:'';
  background:linear-gradient(#FFFFFF,#FFFFFF) center / 10px 2px no-repeat #111111;
}

/* Oak frame overlays the live poster; paper edges sit beneath the wood. */
.visual.remote-preview {
  aspect-ratio:3/4;
  border:0!important;
  background:transparent;
  isolation:isolate;
}
.visual.remote-preview #poster-preview {
  inset:1.6%;
  width:96.8%;
  height:96.8%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  background:#FFFFFF;
  z-index:0;
}
.visual.remote-preview .preview-oak-frame {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
  user-select:none;
  z-index:1;
}
.visual.remote-preview .preview-status { z-index:2; }

/* Text-only design directory, automatically populated from the design catalog. */
.poster-directory { display:block; margin-bottom:4rem; }
.poster-directory > label { display:block; margin-bottom:0.6rem; }
.poster-directory-count { font-size:0.8rem; margin:0.75rem 0 1.5rem; }
.poster-design-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.poster-design-list > li { padding:1.5rem; background:#FFFFFF; border-radius:var(--photo-radius); }
.poster-design-list > li[hidden] { display:none; }
.poster-design-list h2 { margin:0 0 1.25rem; font-size:1.3rem; line-height:1.3; letter-spacing:-0.02em!important; }
.poster-design-list h2 a { border:0!important; text-decoration:none; }
.poster-design-options { display:flex; flex-wrap:wrap; gap:0.6rem; }
.poster-design-options a.textlink { font-size:0.8rem; }
@media(max-width:650px) { .poster-design-list { grid-template-columns:1fr; } }

/* Repeat the three soft panel colours across the poster collection. */
.poster-design-list > li:nth-child(3n + 1) { background:var(--oat); }
.poster-design-list > li:nth-child(3n + 2) { background:var(--blush-light); }
.poster-design-list > li:nth-child(3n) { background:var(--sage); }

.poster-design-description { font-size:0.9rem; line-height:1.65; margin:0 0 1.25rem; }
.design-delivery-note { font-size:0.85rem; line-height:1.6; margin:0 0 1.25rem; }

/* Cookie consent banner. */
.consent-banner {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 1000;
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  background: #fff;
  color: #111;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.16);
  font-size: 0.85rem;
  line-height: 1.45;
}
.consent-banner p { margin: 0; flex: 1 1 320px; }
.consent-banner a { color: inherit; text-decoration: underline; }
.consent-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.consent-actions button {
  font: inherit;
  font-weight: 600;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid #111;
  background: #fff;
  color: #111;
  cursor: pointer;
}
.consent-actions button:hover,
.consent-actions button:focus-visible { background: #111; color: #fff; }
.coming-soon-box { max-width: 640px; }
