/* Scentry custom styles. Edit this file directly; no build required. */
:root {
  font-family:'DM Sans',sans-serif;
  color:#101010;
  background:#fff;
  font-synthesis:none;
  --page-width:1680px;
  --panel:#f8f7f6;
  --muted:#4d4e52;
  --radius:9px;
  --serif:'Playfair Display',Georgia,serif;
  font-size:clamp(15px,1vw,18px);
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:20px;
}

body {
  margin:0;
}

button,a,input,select {
  -webkit-tap-highlight-color:transparent;
}

button,a {
  touch-action:manipulation;
}

button,select {
  cursor:pointer;
}

button {
  font:inherit;
}

a {
  text-decoration:none;
  color:inherit;
}

button {
  color:inherit;
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:2px solid #99611f;
  outline-offset:4px;
}

img {
  display:block;
  max-width:100%;
}

h1,h2,h3,p {
  margin:0;
}

h1,h2 {
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.045em;
}

h2 {
  font-size:2.25rem;
  line-height:1.15;
}

p {
  line-height:1.45;
}

[hidden] {
  display:none!important;
}

.panel {
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--panel);
}

.page-shell {
  max-width:var(--page-width);
  padding:0 2.9%;
  margin:auto;
  display:grid;
  gap:.8rem;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding:.88rem 2.05rem;
  border:1px solid #171717;
  border-radius:4px;
  background:linear-gradient(115deg,#222,#0a0a0a);
  color:white;
  font-weight:600;
  line-height:1.2;
  transition:background .2s,transform .2s;
}

.button:hover {
  background:#67451f;
  transform:translateY(-1px);
}

.button .ph {
  font-size:1.2em;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  border-bottom:1px solid #b3b3b3;
  padding-bottom:.45rem;
  white-space:nowrap;
  font-weight:600;
  font-size:.92rem;
}

.icon-button {
  display:inline-grid;
  place-items:center;
  background:transparent;
  border:0;
  width:2.8rem;
  height:2.8rem;
  font-size:2rem;
}

.icon-button:hover {
  color:#956024;
}

.announcement {
  background:#f0e7dc;
  font-size:.98rem;
}

.announcement-inner {
  max-width:var(--page-width);
  padding:.57rem 6.6%;
  margin:auto;
}

.announcement b {
  font-weight:400;
  margin:0 .4rem;
}

.currency {
  display:flex;
  align-items:center;
  gap:.7rem;
}

.currency .ph {
  font-size:1.2rem;
}

.currency select {
  border:0;
  background:transparent;
  font:inherit;
}

.site-header {
  max-width:var(--page-width);
  padding:1rem 6.3% .85rem;
  margin:auto;
  gap:2rem;
  min-height:5.2rem;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  flex-shrink:0;
}

.brand-symbol {
  display:block;
  width:3.7rem;
  height:3.5rem;
  overflow:hidden;
}

.brand-symbol img {
  width:4.6rem;
  max-width:none;
  height:3.5rem;
  object-fit:cover;
  mix-blend-mode:multiply;
}

.brand-name {
  display:block;
  font-family:Georgia,serif;
  font-size:2.8rem;
  line-height:1;
  letter-spacing:-.1rem;
}

.brand-tagline {
  display:block;
  letter-spacing:.11em;
  font-size:.48rem;
  margin-top:.3rem;
}

.desktop-nav {
  gap:1.9rem;
  white-space:nowrap;
  font-size:.97rem;
}

.desktop-nav a {
  padding:.65rem 0;
  position:relative;
}

.desktop-nav a:hover:after,.desktop-nav .active:after {
  content:'';
  position:absolute;
  bottom:-.25rem;
  left:0;
  right:0;
  height:2px;
  background:#111;
}

.header-actions {
  gap:1.15rem;
}

.cart-trigger {
  position:relative;
}

.cart-count {
  position:absolute;
  right:.08rem;
  top:.05rem;
  width:1.3rem;
  height:1.3rem;
  display:grid;
  place-items:center;
  background:#071116;
  color:white;
  font-size:.75rem;
  border-radius:50%;
}

.mobile-toggle,.mobile-nav {
  display:none;
}

/* The hero preserves the reference composition with live copy over the supplied photograph. */
.hero {
  position:relative;
  min-height:28rem;
  background:#f3ede7;
}

.hero-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 62%;
}

.hero:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#f5f2ef 0%,#f5f2eff5 26%,#f5f2efb0 40%,transparent 61%);
  pointer-events:none;
}

.hero-copy {
  position:relative;
  z-index:1;
  padding:2.35rem 5.7% 1.6rem;
}

.eyebrow {
  font-size:.88rem;
  letter-spacing:.38em;
  color:#653a18;
  font-weight:500;
  margin-bottom:.65rem;
}

.hero h1 {
  font-size:4.85rem;
  line-height:.98;
  margin-bottom:1.05rem;
  letter-spacing:-.055em;
}

.hero-description {
  font-size:1.16rem;
  line-height:1.4;
  margin-bottom:1rem;
}

.hero .button {
  margin-bottom:1.7rem;
}

.hero-stats {
  gap:0;
  max-width:34rem;
}

.hero-stats>div {
  display:flex;
  flex-direction:column;
  flex:1;
  padding-left:2.2rem;
  border-left:1px solid #9da0a2;
}

.hero-stats>div:first-child {
  padding-left:0;
  border:0;
}

.hero-stats strong {
  font-size:1.4rem;
  line-height:1.1;
}

.hero-stats strong .ph {
  font-size:1rem;
}

.hero-stats span {
  font-size:.94rem;
  margin-top:.2rem;
  color:#393939;
}

.hero-note {
  position:absolute;
  z-index:1;
  right:3.4%;
  top:2.7rem;
  color:#765036;
}

.hero-note>span {
  font-family:'Great Vibes',cursive;
  font-size:3.3rem;
  line-height:.87;
  display:block;
  transform:rotate(-9deg);
}

.hero-note>div {
  width:2.3rem;
  height:1px;
  background:#947d6c;
  margin:1.8rem 0 1rem 1.6rem;
}

.hero-note p {
  font-size:.84rem;
  letter-spacing:.07em;
  color:#342c26;
  margin-left:1.6rem;
}

.hero-controls {
  position:absolute;
  z-index:2;
  bottom:1.2rem;
  right:2%;
  gap:.8rem;
  font-size:.9rem;
}

.round-button {
  width:2.7rem;
  height:2.7rem;
  border-radius:50%;
  background:#fff9;
  display:grid;
  place-items:center;
  font-size:1.3rem;
}

.round-button:hover {
  background:white;
}

.benefits {
  padding:1.08rem 1.7rem;
  background:#f6f5f4;
}

.benefit {
  justify-content:center;
  gap:1.65rem;
  border-right:1px solid #d7d6d6;
}

.benefit:last-child {
  border:0;
}

.benefit>.ph {
  font-size:3rem;
}

.benefit strong {
  font-size:1.14rem;
  font-weight:650;
}

.benefit p {
  font-size:1rem;
  margin-top:.1rem;
  color:#343434;
}

.moods {
  padding:1rem 3.55% .8rem;
  background:linear-gradient(110deg,#f9f8f7,#fafafa);
}

.section-heading {
  margin-bottom:.9rem;
}

.section-heading p {
  color:#424246;
  font-size:1.12rem;
  line-height:1.4;
  margin-top:.13rem;
}

.mood-grid {
  gap:2.7rem;
}

.mood-card {
  aspect-ratio:1;
  border-radius:50%;
  overflow:hidden;
  position:relative;
  background:#f3f0ee;
  transition:transform .2s;
}

.mood-card:hover {
  transform:translateY(-4px);
}

/* Standalone regenerated mood photos. Captions remain editable in index.html. */
.mood-photo {
  position:absolute;
  inset:0;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}

.mood-photo-0 {
  background-image:url('../assets/categories/mood-floral.jpg');
}

.mood-photo-1 {
  background-image:url('../assets/categories/mood-citrus.jpg');
}

.mood-photo-2 {
  background-image:url('../assets/categories/mood-woody.jpg');
}

.mood-photo-3 {
  background-image:url('../assets/categories/mood-oriental.jpg');
}

.mood-photo-4 {
  background-image:url('../assets/categories/mood-fresh.jpg');
}

.mood-photo-5 {
  background-image:url('../assets/categories/mood-gift-sets.jpg');
}

.mood-caption {
  position:absolute;
  bottom:0;
  width:100%;
  height:38%;
  background:#f7f5f2ef;
  display:flex;
  align-items:center;
  flex-direction:column;
  padding-top:.65rem;
  gap:.05rem;
}

.mood-caption strong {
  font-size:1rem;
  font-weight:650;
}

.mood-caption span {
  font-size:.82rem;
  white-space:nowrap;
}

.gift-section {
  display:grid;
  grid-template-columns:33% 47% 20%;
  min-height:19.1rem;
  background:#f6f1eb;
}

.gift-copy {
  padding:1.35rem 0 1.5rem 13.2%;
  z-index:1;
}

.gift-copy h2 {
  font-size:2.95rem;
  line-height:1.02;
  margin:.3rem 0 .75rem;
}

.gift-copy>p:not(.eyebrow) {
  line-height:1.3;
  font-size:1.13rem;
  margin-bottom:.9rem;
}

.gift-copy .eyebrow {
  white-space:nowrap;
  margin-bottom:.3rem;
}

.gift-copy .button {
  padding:.8rem 1.95rem;
}

.gift-image {
  background-image:url('../assets/banners/gift-set-banner.jpg');
  background-size:cover;
  background-position:70% 52%;
}

.gift-perks {
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1.55rem;
  padding-left:2.9rem;
  background:#f8f4ee;
}

.gift-perks>div {
  gap:1.25rem;
  font-size:.95rem;
  white-space:nowrap;
}

.gift-perks .ph {
  font-size:2rem;
}

.bestsellers {
  padding:.75rem 3.2% 1.2rem;
  background:linear-gradient(120deg,#faf9f8,#fcfcfc);
}

.product-grid {
  gap:2.05rem;
}

.product-image {
  height:9.7rem;
  border:1px solid #efedeb;
  border-radius:4px;
  position:relative;
  overflow:hidden;
  background:#f8f6f3;
}

.product-view {
  width:100%;
  height:100%;
}

.product-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 45%;
  transition:transform .25s;
}

.product-view:hover img {
  transform:scale(1.045);
}

.favorite {
  position:absolute;
  right:.2rem;
  top:.15rem;
  font-size:1.35rem;
  width:2rem;
  height:2rem;
  background:#fff9;
  border-radius:50%;
}

.favorite.saved {
  color:#b23647;
}

.favorite.saved .ph {
  font-family:'Phosphor-Fill'!important;
}

.product-card h3 {
  font-size:1rem;
  font-weight:650;
  line-height:1.15;
  margin:.5rem 0 .2rem;
}

.product-card>p {
  font-size:.92rem;
  color:var(--muted);
  white-space:nowrap;
}

.rating {
  display:flex;
  align-items:center;
  gap:1rem;
  line-height:1.1;
  margin-top:.35rem;
}

.rating>span {
  color:#f6b000;
  letter-spacing:-.07em;
  font-size:1.24rem;
}

.half-star {
  background:linear-gradient(90deg,#f6b000 50%,#ccc 50%);
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.rating small {
  font-size:.84rem;
  color:var(--muted);
}

.price {
  display:block;
  font-size:1.2rem;
  line-height:1.2;
  margin:.1rem 0 .5rem;
  font-variant-numeric:tabular-nums;
}

.add-cart {
  width:100%;
  padding:.55rem .4rem;
  gap:.65rem;
  font-size:.97rem;
}

.journal {
  grid-template-columns:.85fr 1fr 1fr 1fr;
  gap:1.4rem;
  padding:.4rem 3.2% .65rem;
  background:#f7f4ef;
}

.journal-intro {
  padding:1.8rem 0 1.25rem;
}

.journal-intro h2 {
  font-size:2.3rem;
}

.journal-intro p {
  font-size:1.1rem;
  line-height:1.4;
  margin:.7rem 0 1.1rem;
}

.journal-intro .button {
  padding:.9rem 2rem;
}

.journal-card {
  background:white;
  border-radius:4px;
  overflow:hidden;
}

.journal-card>button {
  width:100%;
  height:100%;
  text-align:left;
}

.journal-card img {
  width:100%;
  height:8.25rem;
  object-fit:cover;
  object-position:center 40%;
  transition:filter .2s;
}

.journal-card:hover img {
  filter:brightness(1.06);
}

.journal-card button>div {
  padding:.55rem 1.3rem .4rem;
}

.journal-card h3 {
  font-size:1.05rem;
  line-height:1.25;
  font-weight:650;
  min-height:2.6rem;
}

.journal-card span {
  display:flex;
  align-items:center;
  gap:.65rem;
  font-size:.95rem;
  font-weight:550;
  margin-top:.35rem;
}

.newsletter {
  position:relative;
  min-height:6.65rem;
  padding:1rem 9.8% 1rem 3.55%;
  background:#f6eae7;
  background-image:linear-gradient(90deg,#f7ece8 0%,#f7ece8 83%,#f7ece800 97%),url('../assets/banners/newsletter-bg.jpg');
  background-size:auto,auto 240%;
  background-position:right 83%;
  background-repeat:no-repeat;
  gap:2rem;
}

.newsletter h2 {
  font-size:2.3rem;
}

.newsletter p {
  font-size:1.08rem;
  margin-top:.25rem;
}

.newsletter-form {
  width:47%;
  flex-shrink:0;
}

.newsletter input {
  min-width:0;
  flex:1;
  border:1px solid #d9dadd;
  border-radius:4px 0 0 4px;
  padding:1rem 1.2rem;
  background:white;
  outline-offset:-3px;
  font-size:1.02rem;
}

.newsletter .button {
  border-radius:0 4px 4px 0;
  padding:.95rem 2.7rem;
}

.site-footer {
  max-width:var(--page-width);
  margin:auto;
  padding:1.8rem 6.25% 1rem;
}

.footer-grid {
  grid-template-columns:1.15fr .85fr 1.05fr 1fr;
  gap:3.6rem;
}

.site-footer .brand-name {
  font-size:2.7rem;
}

.site-footer .brand-symbol {
  width:3.5rem;
}

.brand-description {
  color:var(--muted);
  font-size:1.05rem;
  margin:1.25rem 0 .9rem;
}

.social-links {
  gap:1.2rem;
  font-size:1.8rem;
}

.social-links button:hover {
  color:#956024;
}

.footer-grid h3 {
  font-weight:650;
  margin:.05rem 0 .7rem;
}

.footer-grid ul {
  list-style:none;
  padding:0;
  margin:0;
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.6;
}

.footer-grid li a:hover,.footer-grid li button:hover {
  color:#956024;
}

.contact-links li {
  display:flex;
  align-items:center;
  gap:1.4rem;
  margin-bottom:.3rem;
  white-space:nowrap;
}

.contact-links .ph {
  color:#000;
  font-size:1.3rem;
}

.footer-bottom {
  border-top:1px solid #ddd;
  margin-top:1.55rem;
  padding-top:.8rem;
  font-size:.94rem;
  color:var(--muted);
}

.footer-bottom>span:last-child {
  display:flex;
  gap:.5rem;
  align-items:center;
}

.footer-bottom .ph-heart {
  color:#ef222b;
  font-size:1.1rem;
}

/* Shared interactive surfaces, independent of the homepage section layout. */
dialog {
  border:1px solid #e9dfd4;
  border-radius:12px;
  background:#fffdfa;
  padding:2rem;
  width:min(620px,calc(100% - 32px));
  max-height:85dvh;
  margin:auto;
  color:#151515;
  box-shadow:0 20px 80px #0003;
  font-size:15px;
}

dialog::backdrop {
  background:#15120e66;
  backdrop-filter:blur(3px);
}

.dialog-header {
  gap:20px;
  margin-bottom:1.5rem;
}

.dialog-header h2 {
  font-size:28px;
}

.dialog-note {
  margin:1.2rem 0;
  line-height:1.6;
  color:#56504a;
}

.dialog-note a {
  text-decoration:underline;
}

.bag-row {
  display:grid;
  grid-template-columns:70px 1fr auto;
  align-items:center;
  gap:18px;
  padding:15px 0;
  border-bottom:1px solid #e9e3dc;
}

.bag-row img {
  width:70px;
  height:80px;
  object-fit:cover;
  border-radius:4px;
}

.bag-row h3 {
  font-weight:600;
}

.bag-row p {
  color:#62584c;
}

.quantity {
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:8px;
}

.quantity button {
  width:27px;
  height:27px;
  border:1px solid #cfc3b5;
  border-radius:3px;
}

.bag-total {
  margin-top:20px;
}

.product-detail {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:center;
}

.product-detail img {
  border-radius:6px;
}

.product-detail strong {
  display:block;
  font-size:24px;
  margin:16px 0;
}

.product-detail .button {
  padding:12px 18px;
}

.article-image,.gift-dialog-image {
  width:100%;
  max-height:300px;
  object-fit:cover;
  border-radius:6px;
}

#search-form {
  display:grid;
  gap:15px;
}

#search-input {
  padding:14px;
  border:1px solid #c9bcad;
  border-radius:4px;
  background:white;
}

.empty-state {
  padding:2rem;
}

.toast {
  position:fixed;
  bottom:25px;
  left:50%;
  transform:translate(-50%,15px);
  background:#191714;
  color:#fff;
  padding:14px 24px;
  border-radius:6px;
  box-shadow:0 8px 30px #0002;
  z-index:10;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s,transform .2s;
  max-width:calc(100% - 32px);
  font-size:14px;
  text-align:center;
}

.toast.visible {
  opacity:1;
  transform:translate(-50%,0);
}

/* Reference alignment: compact header, complete bottle silhouettes, text-free gift crop. */
@media(min-width:768px) {
  .site-header {
    padding-top:.65rem;
    padding-bottom:.65rem;
  }
  .hero {
    min-height:30rem;
  }
  .hero-copy {
    padding-top:2.05rem;
  }
  .hero-image {
    width:76%;
    left:auto;
    object-position:50% 65%;
  }
  .hero:after {
    background:linear-gradient(90deg,#f5f2ef 0%,#f5f2eff5 27%,#f5f2efb0 40%,transparent 61%);
  }
  .hero-note {
    right:3.4%;
    top:2.7rem;
  }
  .hero-note:before {
    content:'';
    position:absolute;
    inset:-3rem -4rem -7rem -1rem;
    background:linear-gradient(90deg,transparent,#eee2d4d9 40%);
    z-index:-1;
  }
  .moods {
    padding-top:.85rem;
  }
  .gift-image {
    background-size:cover;
    background-position:70% 52%;
  }
  .product-image img {
    object-fit:contain;
  }
  .product-image {
    background:#f6f3ef;
  }
}

@media(min-width:1440px) {
  .page-shell {
    padding-left:42px;
    padding-right:42px;
  }
  .site-header {
    padding-left:90px;
    padding-right:90px;
  }
  .announcement-inner {
    padding-left:95px;
    padding-right:95px;
  }
  .site-footer {
    padding-left:90px;
    padding-right:90px;
  }
}

@media(max-width:1150px) {
  .desktop-nav {
    gap:1.6rem;
  }
  .site-header {
    gap:1.5rem;
  }
  .header-actions {
    gap:.9rem;
  }
  .gift-perks {
    padding-left:2rem;
  }
  .gift-perks>div {
    gap:1rem;
  }
  .product-grid {
    gap:1.9rem;
  }
}

@media(max-width:900px) {
  :root {
    font-size:14px;
  }
  .desktop-nav {
    gap:1rem;
  }
  .site-header {
    padding-left:4%;
    padding-right:4%;
    gap:1rem;
  }
  .brand-name {
    font-size:2.4rem;
  }
  .brand-symbol {
    width:3rem;
  }
  .header-actions {
    gap:.3rem;
  }
  .hero-note {
    right:3%;
  }
  .hero-stats {
    max-width:31rem;
  }
  .hero h1 {
    font-size:4.2rem;
  }
  .gift-section {
    grid-template-columns:36% 43% 21%;
  }
  .gift-copy {
    padding-left:10%;
  }
  .gift-copy h2 {
    font-size:2.6rem;
  }
  .gift-perks {
    padding-left:1rem;
  }
  .gift-perks>div {
    font-size:.9rem;
    gap:.7rem;
  }
  .mood-grid {
    gap:1.7rem;
  }
  .mood-caption span {
    font-size:.78rem;
  }
  .product-grid {
    gap:1.6rem;
  }
  .product-image {
    height:16rem;
  }
  .journal {
    gap:1rem;
  }
  .journal-card button>div {
    padding:.7rem;
  }
  .journal-intro .button {
    padding:.8rem 1rem;
  }
  .newsletter {
    padding-right:7%;
    gap:1rem;
  }
  .newsletter-form {
    width:45%;
  }
  .newsletter .button {
    padding:1rem 1.5rem;
  }
  .footer-grid {
    gap:2rem;
  }
}

@media(max-width:767px) {
  :root {
    font-size:14px;
  }
  .page-shell {
    padding:0 16px;
    gap:10px;
  }
  .announcement-inner {
    justify-content:center;
    padding:8px 10px;
    font-size:12px;
  }
  .announcement-center,.announcement-inner>div {
    display:none;
  }
  .site-header {
    padding:14px 20px;
    min-height:78px;
  }
  .desktop-nav {
    display:none;
  }
  .brand-name {
    font-size:2.25rem;
  }
  .brand-symbol {
    width:2.8rem;
    height:3rem;
  }
  .brand-symbol img {
    height:3rem;
    width:4rem;
  }
  .brand-tagline {
    font-size:.5rem;
  }
  .header-actions {
    gap:.15rem;
  }
  .icon-button {
    font-size:1.65rem;
    width:2.3rem;
    height:2.3rem;
  }
  .mobile-toggle {
    display:grid;
  }
  .mobile-nav:not([hidden]) {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    padding:10px 20px 20px;
    background:#f8f4ef;
  }
  .mobile-nav a {
    padding:12px 8px;
  }
  .hero {
    min-height:590px;
  }
  .hero-image {
    height:58%;
    top:auto;
    bottom:0;
    object-position:60% 55%;
  }
  .hero:after {
    background:linear-gradient(180deg,#f5f2ef 0%,#f5f2ef 36%,#f5f2efb0 46%,transparent 65%);
  }
  .hero-copy {
    padding:28px 24px;
  }
  .hero h1 {
    font-size:3.65rem;
    line-height:1.02;
  }
  .hero .eyebrow {
    font-size:.7rem;
    letter-spacing:.27em;
  }
  .hero-description {
    font-size:1.02rem;
    max-width:320px;
  }
  .desktop-break {
    display:none;
  }
  .hero .button {
    margin-bottom:1.3rem;
  }
  .hero-stats {
    max-width:330px;
  }
  .hero-stats>div {
    padding-left:1.2rem;
  }
  .hero-stats strong {
    font-size:1.2rem;
  }
  .hero-stats span {
    font-size:.76rem;
  }
  .hero-note {
    display:none;
  }
  .hero-controls {
    bottom:14px;
    right:16px;
  }
  .benefits {
    padding:17px 10px;
    gap:22px 0;
  }
  .benefit {
    gap:12px;
    justify-content:flex-start;
    padding-left:12px;
  }
  .benefit:nth-child(2) {
    border:0;
  }
  .benefit>.ph {
    font-size:2rem;
  }
  .benefit strong {
    font-size:.94rem;
  }
  .benefit p {
    font-size:.8rem;
  }
  .moods {
    padding:20px 16px;
  }
  .section-heading {
    gap:10px;
    margin-bottom:18px;
  }
  .section-heading h2 {
    font-size:1.9rem;
  }
  .section-heading p {
    font-size:.9rem;
    max-width:270px;
  }
  .text-link {
    font-size:.86rem;
    gap:6px;
  }
  .mood-grid {
    gap:18px 15px;
  }
  .mood-caption {
    padding-top:.5rem;
    height:39%;
  }
  .mood-caption strong {
    font-size:.82rem;
  }
  .mood-caption span {
    font-size:.66rem;
  }
  .gift-section {
    grid-template-columns:1fr 1fr;
  }
  .gift-copy {
    padding:25px 0 18px 22px;
  }
  .gift-copy .eyebrow {
    font-size:.69rem;
    letter-spacing:.23em;
  }
  .gift-copy h2 {
    font-size:2.15rem;
  }
  .gift-copy>p:not(.eyebrow) {
    font-size:.94rem;
  }
  .gift-copy .button {
    font-size:.88rem;
    padding:.85rem 1rem;
    gap:.5rem;
  }
  .gift-image {
    background-size:auto 100%;
    background-position:73% center;
  }
  .gift-perks {
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr;
    padding:18px 22px;
    gap:16px;
    border-top:1px solid #e6ded5;
  }
  .gift-perks>div {
    font-size:.84rem;
    gap:10px;
  }
  .gift-perks .ph {
    font-size:1.55rem;
  }
  .bestsellers {
    padding:20px 16px;
  }
  .product-grid {
    gap:25px 18px;
  }
  .product-image {
    height:190px;
  }
  .product-card h3 {
    font-size:1rem;
  }
  .product-card>p {
    font-size:.82rem;
  }
  .rating {
    gap:.6rem;
  }
  .rating>span {
    font-size:1.15rem;
  }
  .rating small {
    font-size:.8rem;
  }
  .price {
    font-size:1.16rem;
  }
  .add-cart {
    padding:.7rem .3rem;
    font-size:.88rem;
  }
  .journal {
    grid-template-columns:1fr;
    padding:20px 16px;
    gap:16px;
  }
  .journal-intro {
    padding:0 0 4px;
  }
  .journal-intro h2 {
    font-size:2rem;
  }
  .journal-intro p {
    display:inline-block;
    font-size:.96rem;
    margin:.6rem 0 1rem;
  }
  .journal-intro .button {
    float:right;
    margin-top:16px;
    font-size:.9rem;
    padding:.8rem 1.1rem;
  }
  .journal-card>button {
    display:grid;
    grid-template-columns:40% 1fr;
    align-items:center;
  }
  .journal-card img {
    height:120px;
  }
  .journal-card button>div {
    padding:12px 16px;
  }
  .journal-card h3 {
    font-size:.95rem;
    min-height:0;
  }
  .journal-card span {
    font-size:.86rem;
    margin-top:10px;
  }
  .newsletter {
    flex-direction:column;
    align-items:flex-start;
    padding:22px 20px;
    gap:18px;
    background-size:auto,auto 100%;
    background-image:linear-gradient(90deg,#f7ece8 65%,#f7ece8b0),url('../assets/banners/newsletter-bg.jpg');
  }
  .newsletter h2 {
    font-size:2rem;
  }
  .newsletter p {
    font-size:.9rem;
    max-width:300px;
  }
  .newsletter-form {
    width:100%;
  }
  .newsletter input {
    font-size:.92rem;
    padding:12px;
  }
  .newsletter .button {
    font-size:.9rem;
    padding:12px 17px;
  }
  .site-footer {
    padding:28px 30px 20px;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 22px;
  }
  .footer-grid>div:first-child {
    grid-column:1/-1;
  }
  .footer-grid h3 {
    font-size:.9rem;
  }
  .footer-grid ul {
    font-size:.92rem;
  }
  .brand-description {
    font-size:.96rem;
    margin:16px 0 12px;
  }
  .social-links {
    font-size:1.6rem;
  }
  .contact-links {
    font-size:.9rem!important;
  }
  .contact-links li {
    gap:10px;
    white-space:normal;
  }
  .footer-grid #contact {
    grid-column:1/-1;
  }
  .footer-bottom {
    flex-direction:column;
    gap:9px;
    font-size:.82rem;
  }
  .footer-bottom>span:last-child {
    justify-content:flex-start;
  }
  .product-detail {
    grid-template-columns:1fr;
  }
  .product-detail img {
    max-height:230px;
    width:100%;
    object-fit:contain;
  }
  .bag-row {
    grid-template-columns:55px 1fr auto;
    gap:12px;
  }
  .bag-row img {
    width:55px;
    height:65px;
  }
  .bag-row .button {
    font-size:11px;
    padding:10px;
  }
  .dialog-header h2 {
    font-size:25px;
  }
}

@media(max-width:430px) {
  .hero h1 {
    font-size:2.8rem;
  }
  .hero {
    min-height:570px;
  }
  .hero-image {
    height:53%;
  }
  .hero:after {
    background:linear-gradient(180deg,#f5f2ef 0%,#f5f2ef 43%,#f5f2efb0 53%,transparent 67%);
  }
  .hero-copy {
    padding-left:20px;
    padding-right:20px;
  }
  .hero-stats>div {
    padding-left:.9rem;
  }
  .hero-stats span {
    font-size:.72rem;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important;
  }
}

