:root {
  --cream:#fff9f3;
  --pink:#f6dfe1;
  --rose:#c99c9d;
  --wine:#743d4b;
--ink:#69414a}

* {
box-sizing:border-box}

html {
scroll-behavior:smooth}

body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
font-family:'DM Sans',sans-serif}

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

img {
  display:block;
  width:100%;
object-fit:cover}

.announcement {
  background:var(--wine);
  color:white;
  text-align:center;
  padding:11px 12px;
  font-size:12px;
letter-spacing:.06em}

.site-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:19px 5%;
  background:#fff7f3;
  border-bottom:1px solid #e9c9cc;
gap:25px}

.brand {
  text-align:center;
  color:var(--wine);
  display:flex;
  flex-direction:column;
  line-height:1.15;
white-space:nowrap}

.brand-bow {
  font-size:27px;
color:#bd808d}

.brand strong {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(20px,2.4vw,31px);
  letter-spacing:.11em;
font-weight:600}

.brand small {
  font-size:9px;
  letter-spacing:.3em;
margin-top:7px}

nav {
  display:flex;
  gap:clamp(12px,2vw,30px);
  align-items:center;
  font-family:'Cormorant Garamond',serif;
font-size:19px}

nav a:hover,.text-link:hover {
color:#c0788a}

.nav-order {
  border:1px solid var(--wine);
padding:9px 14px}

.site-logo {
  max-width: 100px;              
  max-height: 100px;            
  width: auto;                  
  height: auto;                 
  display: block;               
}

.menu-toggle {
  display:none;
  border:0;
  background:transparent;
  color:var(--wine);
font-size:26px}

.hero {
  min-height:520px;
  display:grid;
  grid-template-columns:1fr 1fr;
background:linear-gradient(110deg,#f8e4e2,#fdf2eb)}

.hero-copy {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
padding:65px 6%}

.eyebrow {
  font-size:11px;
  letter-spacing:.23em;
  color:#a46a77;
  text-align:center;
font-weight:600}

.hero h1 {
  font-family:'Great Vibes',cursive;
  font-size:clamp(48px,5.3vw,86px);
  font-weight:400;
  line-height:1.14;
  margin:25px 0 10px;
color:var(--wine)}

.hero h1 em {
font-style:normal}

.hero p {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(22px,2vw,30px);
  line-height:1.3;
max-width:480px}

.hero-mini {
  font-size:10px;
  letter-spacing:.16em;
margin:15px 0 28px}

.btn {
  background:var(--wine);
  color:#fff;
  border:0;
  border-radius:50px;
  padding:16px 31px;
  letter-spacing:.13em;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
display:inline-block}

.btn:hover {
background:#965969}

.btn span {
margin-left:13px}

.hero-image {
overflow:hidden}

.hero-image img {
  height:100%;
  min-height:520px;
object-position:center}

.features {
  background:var(--pink);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  text-align:center;
  gap:10px;
  padding:24px 4%;
  font-family:'Cormorant Garamond',serif;
  font-size:20px;
color:var(--wine)}

.section {
  padding:80px 5%;
  text-align:center;
scroll-margin-top:25px}

.section h2 {
  font-family:'Cormorant Garamond',serif;
  color:var(--wine);
  font-weight:500;
  font-size:clamp(42px,5vw,62px);
margin:8px 0}

.section-intro {
  font-family:'Cormorant Garamond',serif;
  font-size:23px;
  margin:0 auto 32px;
max-width:660px}

.cards {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  max-width:1350px;
margin:auto}

.cake-card {
  background:#fff;
  border:1px solid #f0d6d7;
padding-bottom:19px}

.cake-card img {
  aspect-ratio:4/4;
object-position:center}

.cake-card h3 {
  font-family:'Cormorant Garamond',serif;
  font-size:25px;
  font-weight:600;
margin:15px 0 4px}

.cake-card p {
  margin:0;
font-size:13px}

.price-note {
  font-size:12px;
  margin:26px auto 0;
color:#886d72}

.blush {
background:#f9ebea}

.gallery {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:15px;
  max-width:1250px;
margin:auto}

.gallery img {
aspect-ratio:1/1}

.about {
  max-width:850px;
margin:auto}

.about p:not(.eyebrow) {
  font-family:'Cormorant Garamond',serif;
  font-size:25px;
line-height:1.5}

.about-flourish {
  font-size:40px;
color:#c58c98}

.text-link {
  color:var(--wine);
  text-decoration:underline;
text-underline-offset:5px}

.order-section {
background:#f9ebea}

.order-form {
  max-width:790px;
  margin:30px auto 0;
  text-align:left;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  background:#fffaf6;
  padding:35px;
border:1px solid #e9c8cb}

.field {
  display:flex;
  flex-direction:column;
gap:8px}

.field.full {
grid-column:1/-1}

.field label {
  font-size:13px;
font-weight:600}

.field input:not([type=checkbox]),.field select,.field textarea {
  font:inherit;
  border:1px solid #dcbfc4;
  background:white;
  border-radius:3px;
  padding:12px;
  width:100%;
color:var(--ink)}

.field input[type=file] {
font-size:13px}

.field small {
font-size:11px}

.check {
  display:flex;
  gap:10px;
  align-items:start;
font-weight:400!important}

.check input {
margin-top:3px}

#form-status {
  font-size:13px;
line-height:1.5}

footer {
  text-align:center;
  background:var(--wine);
  color:white;
padding:55px 20px}

footer .footer-brand {
  font-family:'Great Vibes',cursive;
font-size:47px}

footer p {
  font-family:'Cormorant Garamond',serif;
font-size:20px}

footer a {
text-decoration:underline}

footer .footer-note {
  font:12px 'DM Sans',sans-serif;
opacity:.85}

footer small {
  display:block;
  margin-top:25px;
opacity:.8}

@media(max-width:850px) {
  .site-header {
  flex-wrap:wrap}

  .menu-toggle {
  display:block}

  nav {
    display:none;
    flex-basis:100%;
    flex-direction:column;
    align-items:stretch;
  padding:15px 0}

  nav.open {
  display:flex}

  .hero {
  grid-template-columns:1fr}

  .hero-copy {
  padding:55px 6%}

  .hero-image img {
    height:400px;
  min-height:0}

  .features {
  grid-template-columns:1fr 1fr}

  .cards,.gallery {
  grid-template-columns:repeat(2,1fr)}

}

@media(max-width:520px) {
  .brand strong {
  font-size:21px}

  .brand small {
  font-size:8px}

  .hero h1 {
  font-size:56px}

  .hero-mini {
  line-height:2}

  .section {
  padding:55px 5%}

  .features {
  font-size:16px}

  .cards {
  gap:12px}

  .cake-card h3 {
  font-size:21px}

  .order-form {
    grid-template-columns:1fr;
  padding:20px}

  .field {
  grid-column:1/-1}

}

/* Gallery */ .gallery-carousel {
  max-width:820px;
  margin:0 auto;
  display:flex;
  align-items:center;
gap:12px}

.gallery-feature {
  position:relative;
  flex:1;
  min-width:0;
  border:0;
  padding:0;
  background:#f1dbdc;
  cursor:zoom-in;
  overflow:hidden;
border-radius:8px}

.gallery-feature img {
  width:100%;
  height:clamp(260px,48vw,500px);
object-fit:contain}

.gallery-zoom {
  position:absolute;
  right:12px;
  bottom:12px;
  background:#fff9f3e8;
  padding:8px 12px;
  border-radius:30px;
  font-size:12px;
color:var(--wine)}

.gallery-arrow {
  border:1px solid #d8adb6;
  background:#fff8f3;
  color:var(--wine);
  width:42px;
  height:42px;
  border-radius:50%;
  cursor:pointer;
  flex-shrink:0;
font-size:20px}

.gallery-dots {
  margin:14px 0 35px;
font-size:13px}

.gallery-subtitle {
  font:500 31px 'Cormorant Garamond',serif;
  color:var(--wine);
margin:20px 0}

.gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  max-width:1100px;
margin:auto}

.gallery-thumb {
  padding:0;
  border:0;
  border-radius:5px;
  overflow:hidden;
  cursor:zoom-in;
background:#f2d9da}

.gallery-thumb img {
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
transition:transform .2s}

.gallery-thumb:hover img {
transform:scale(1.04)}

.gallery-pages {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
margin-top:25px}

.gallery-pages button {
  border:1px solid #d8adb6;
  background:#fffaf6;
  color:var(--wine);
  padding:9px 12px;
  border-radius:5px;
cursor:pointer}

.gallery-pages button[aria-current=page] {
  background:var(--wine);
color:white}

.gallery-pages button:disabled {
  opacity:.4;
cursor:default}

.lightbox[hidden] {
display:none}

.lightbox {
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(22,12,17,.95);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
padding:65px 16px 20px}

.lightbox-image-wrap {
  min-width:0;
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
height:100%}

.lightbox img {
  width:auto;
  max-width:100%;
  height:auto;
  max-height:calc(100vh - 140px);
object-fit:contain}

.lightbox p {
  color:white;
font-size:13px}

.lightbox button {
  cursor:pointer;
  color:white;
  background:#ffffff25;
  border:1px solid #ffffff55;
  border-radius:50%;
  width:42px;
  height:42px;
  font-size:22px;
flex-shrink:0}

.lightbox-close {
  position:absolute;
  right:20px;
top:16px}

.gallery-thumb:focus-visible,.gallery-arrow:focus-visible,.gallery-feature:focus-visible,.lightbox button:focus-visible {
  outline:3px solid #b96d88;
outline-offset:3px}

@media(max-width:600px) {
  .gallery-grid {
  grid-template-columns:repeat(2,1fr)}

  .gallery-carousel {
  gap:5px}

  .gallery-arrow,.lightbox-nav {
    width:32px!important;
  height:36px!important}

  .lightbox {
    padding-left:5px;
  padding-right:5px}

}

/* Four-across auto-advancing carousel;
single photo on phones */ .gallery-carousel {
  max-width:1200px;
  margin:24px auto;
  display:flex;
  align-items:center;
gap:12px}

.gallery-slides {
  flex:1;
  min-width:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
gap:14px}

.gallery-slide {
  padding:0;
  border:0;
  background:#f3dddd;
  cursor:zoom-in;
  border-radius:8px;
  overflow:hidden;
min-width:0}

.gallery-slide img {
  display:block;
  width:100%;
  aspect-ratio:3/4;
object-fit:cover}

.gallery-slide:hover img {
transform:scale(1.025)}

.gallery-all-link {
  display:inline-block;
  margin:14px auto 6px;
  padding:13px 26px;
  border-radius:30px;
  background:#743d4b;
  color:white;
  text-decoration:none;
font-weight:600}

.gallery-heading {
  font:600 clamp(38px,5vw,64px) 'Cormorant Garamond',serif;
  color:#743d4b;
margin:12px 0}

.full-gallery-section {
  text-align:center;
min-height:60vh}

.gallery-original {
  color:#fff;
  text-underline-offset:4px;
font-size:13px}

.gallery-slide:focus-visible {
  outline:3px solid #b96d88;
outline-offset:3px}

@media(max-width:700px) {
  .gallery-slides {
  grid-template-columns:minmax(0,1fr)}

  .gallery-carousel {
  max-width:500px}

  .gallery-slide img {
  aspect-ratio:4/5}

  .gallery-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))}

}

/* Hero slideshow and Cakes & Pricing offers carousel */ .hero-rotator {
position:relative}

.hero-rotator img {
transition:opacity .2s}

.hero-indicators {
  position:absolute;
  bottom:20px;
  left:0;
  right:0;
  display:flex;
  gap:9px;
justify-content:center}

.hero-indicators button,.offers-dots button {
  width:10px;
  height:10px;
  border:1px solid var(--wine);
  border-radius:50%;
  background:#fff9f3;
  cursor:pointer;
padding:0}

.hero-indicators button[aria-current=true],.offers-dots button[aria-current=true] {
background:var(--wine)}

.offers-carousel {
  max-width:1250px;
  margin:auto;
  display:flex;
  align-items:center;
gap:12px}

.offers-slides {
  flex:1;
  min-width:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
gap:20px}

.offer-card {
  background:white;
  border:1px solid #f0d6d7;
  padding-bottom:22px;
overflow:hidden}

.offer-card img {
  width:100%;
  aspect-ratio:4/4;
object-fit:cover}

.offer-card h3 {
  font:600 27px 'Cormorant Garamond',serif;
  color:var(--wine);
margin:14px 10px 6px}

.offer-card strong {
  display:block;
font-size:14px}

.offer-card p {
  font-size:13px;
padding:0 14px}

.offers-arrow {
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid #d8adb6;
  background:#fff8f3;
  color:var(--wine);
  cursor:pointer;
flex-shrink:0}

.offers-dots {
  display:flex;
  justify-content:center;
  gap:9px;
margin-top:19px}

@media(max-width:1050px) {
  .offers-slides {
  grid-template-columns:repeat(2,minmax(0,1fr))}

}

@media(max-width:700px) {
  .offers-slides {
  grid-template-columns:1fr}

  .offers-carousel {
  gap:6px}

  .offers-arrow {
    width:31px;
  height:36px}

}

/* Click-to-enlarge pricing and offers images */ .offer-photo-button {
  display:block;
  width:100%;
  border:0;
  background:transparent;
  padding:0;
  cursor:zoom-in;
  border-radius:inherit;
overflow:hidden}

.offer-photo-button img {
  display:block;
  width:100%;
  height:auto;
transition:transform .2s ease}

.offer-photo-button:hover img {
transform:scale(1.025)}

.offer-photo-button:focus-visible {
  outline:3px solid #743D4B;
outline-offset:3px}

.offer-image-viewer {
  width:min(96vw,1250px);
  max-width:1250px;
  max-height:96dvh;
  padding:12px;
  border:1px solid #e7c7cc;
  border-radius:14px;
  background:#fff8f0;
  color:#743d4b;
box-shadow:0 18px 65px #0005}

.offer-image-viewer::backdrop {
background:rgba(28,14,22,.85)}

.offer-viewer-inner {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
gap:8px}

.offer-image-viewer img {
  display:block;
  max-width:100%;
  max-height:calc(96dvh - 105px);
  width:auto;
  height:auto;
object-fit:contain}

.offer-viewer-close {
  position:absolute;
  right:2px;
  top:2px;
  z-index:1;
  background:#743d4b;
  color:white;
  border:0;
  border-radius:50%;
  font-size:28px;
  line-height:38px;
  width:40px;
  height:40px;
cursor:pointer}

.offer-viewer-caption {
  margin:0;
  text-align:center;
font-weight:600}

.offer-viewer-original {
  font-size:14px;
  color:#743d4b;
text-decoration:underline}