@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
  --ink: #44392f;
  --muted: #766d64;
  --cream: #fbf7f1;
  --line: #e4dacf;
  --accent: #947a62;
}

body { background: #fbf7f1; color: var(--ink); }
h1, h2, h3, .moment-head h2, .moment h3, .future h2, .booking h2, .banner h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; }
.nav { border-bottom: 1px solid #e8dfd4; }
.brand-logo { mix-blend-mode: multiply; }
.links { font-weight: 500; letter-spacing: .01em; }
.links a:not(.btn):hover, .footer a:hover { color: #9d7b5d; }
.btn { background: #493e34; border-color: #493e34; border-radius: 5px; font-weight: 600; box-shadow: none; }
.btn:hover { background: #665444; border-color: #665444; box-shadow: 0 9px 20px #4d3b2e19; }
.btn.outline { border-color: #9b826d; color: #493e34; }
.btn.outline:hover { color: white; }

.hero { background: linear-gradient(120deg,#f3eae0,#f7efe7 62%,#eaddcf); border: 1px solid #e6d9cb; border-radius: 8px; }
.hero-copy { padding-top: 98px; }
.hero h1 { font-size: clamp(58px, 6.4vw, 94px); font-weight: 500; line-height: .94; letter-spacing: -2.7px; }
.hero h1 em { font-style: italic; color: #947a62; }
.hero p { color: #706459; }
.eyebrow { font-weight: 600; letter-spacing: 2.5px; color: #8a7560; }
.eyebrow:before, .hero .eyebrow:before { background: #ab9076; width: 6px; height: 6px; }
.hero-art { background: radial-gradient(circle at 60% 40%,#fff9f1 0,#ebdccb 55%,transparent 76%); }
.arch { background: linear-gradient(150deg,#dcc9b7,#bba48e); border-radius: 230px 230px 0 0; }
.booth { background: linear-gradient(120deg,#55483d,#2f2924 48%,#695848); border-color: #493e34; box-shadow: 24px 24px 35px #6d564653; }
.booth .screen { background: linear-gradient(135deg,#f2dfc8,#ad917a); color: #544537; font-family: 'Cormorant Garamond',Georgia,serif; font-size: 31px; }
.polaroid { box-shadow: 0 12px 32px #66534648; }
.polaroid .photo { background: linear-gradient(145deg,#f5dbc5,#bba48e 55%,#746253); }
.star { color: #fff9ed; }

.ribbon { background: #493e34; border-radius: 4px; font-weight: 500; letter-spacing: 1.6px; }
.ribbon span:before { color: #cfb49a; }
.section { padding-top: 105px; padding-bottom: 105px; }
.section h2, .moment-head h2 { letter-spacing: -1.2px; line-height: .98; font-size: clamp(44px,4.9vw,70px); }
.muted, .moment-head p { color: var(--muted); }
.step,.package { border-radius: 7px; border-color: #e6dacf; background: #fffdf9; box-shadow: 0 10px 30px #6f5b4510; }
.step .number { color: #c4aa91; font-family: 'Cormorant Garamond',Georgia,serif; font-weight: 500; }
.step h3 { font-size: 32px; letter-spacing: -.4px; }
.step p { color: #776d62; }
.package.featured { background: #4a3e34; border-color: #4a3e34; }
.package .tag { background: #eee2d5; color: #785e49; border-radius: 3px; }
.package-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.package-tags .tag { align-self: auto; }
.package-tags .popular-tag { background: #d9b98e; color: #483526; }
.package h3 { font-size: 39px; margin-top: 24px; }
.package .price, .package.featured .price { color: #ae8e70; }
.package.featured .price { color: #e2c5a6; }
.package li { border-color: #b2a08b33; }
.package li:before { color: #b89775; }
.package.featured .btn { color: #493e34; }
.banner { background: #e8dbcb; border-radius: 7px; }
.banner h2 { font-size: 58px; }
.booking { background: #493e34; border-radius: 8px; }
.booking h2 { font-size: clamp(48px,4.5vw,69px); line-height: 1.0; }
.booking p { color: #d5c6b9; }
.form { background: #fffdfa; border-radius: 5px; }
.field input,.field select,.field textarea { border-color: #ddd0c4; background: #fffdf9; border-radius: 4px; outline-color: #a6886d; }
.result { background: #f4eae0; border-radius: 4px; }
.faq summary:after { color: #a78769; }
.faq details { border-color: #e1d4c6; }
.faq p { color: #766d64; }
.legal { background: #efe7de; border-radius: 6px; }
.legal details { border-color: #d9cbbd; }
.footer { border-top: 1px solid #e6dacf; }
.copyright { border-color: #e6dacf; }

.moment-section { padding-top: 95px; }
.moment { border-radius: 6px; border: 1px solid #e0d2c3; }
.moment.wedding { background: #f4dfe3; }
.moment.home { background: #f7e5cf; }
.moment.business { background: #e6e2f2; }
.moment h3 { font-size: clamp(32px,3.2vw,43px); letter-spacing: -.6px; }
.future { background: #4a3e34; border-radius: 6px; }
.future h2 { font-size: clamp(42px,4.8vw,65px); letter-spacing: -.7px; }
.future h2 em { color: #e2c3a2; }
.future p { color: #dbcbbd; }
.future:after { color: #d5b89c; }
.promise-strip span { background: #f8f0e6; border-color: #e5d6c7; border-radius: 4px; }

/* A little more rhythm and personality without departing from the identity. */
.hero { isolation: isolate; }
.hero:before { content: '✧'; position: absolute; top: 17px; right: 26px; font-family: Georgia,serif; font-size: 38px; color: #947c65; opacity: .5; }
.hero-copy:after { content: ''; display: block; width: 72px; height: 1px; margin-top: 28px; background: #bea58b; }
.ribbon { position: relative; box-shadow: 0 14px 30px #493e3420; }
.ribbon:after { content: ''; position: absolute; inset: 5px; border: 1px solid #b99d7d55; pointer-events: none; }
.step { position: relative; overflow: hidden; transition: transform .25s,box-shadow .25s; }
.step:after { content: '✧'; position: absolute; right: 18px; top: 12px; color: #d6bfa8; font-size: 33px; }
.step:hover,.package:hover { transform: translateY(-5px); box-shadow: 0 18px 38px #5947351b; }
.package { position: relative; overflow: hidden; transition: transform .25s,box-shadow .25s; }
.package.featured:hover { transform: translateY(-17px); }
.package:before { content: ''; position: absolute; width: 100%; height: 3px; left: 0; top: 0; background: linear-gradient(90deg,#e5d3be,#b69a7e,#e8d9c8); }
.package.featured:before { background: linear-gradient(90deg,#d1b395,#f2d9b8,#d1b395); }
.package li:last-child { background: #f3e9dc; color: #73533c; font-weight: 700; border: 1px solid #e1cdb5; border-radius: 4px; margin-top: 16px; padding: 12px 14px; }
.package.featured li:last-child { background: #6a594a; color: #fff4e7; border-color: #9e8468; }
.package li:last-child:before { content: '✧'; color: #a17b56; }
.package.featured li:last-child:before { color: #f0d2af; }
.moment .visual { font-family: Georgia,serif; font-weight: 400; transition: transform .3s; }
.moment:hover .visual { transform: rotate(-2deg) scale(1.15); }
.moment:after { content: ''; position: absolute; right: -50px; bottom: -75px; width: 190px; height: 190px; border: 1px solid #8c725544; border-radius: 50%; pointer-events: none; }
.banner { position: relative; overflow: hidden; border: 1px solid #cfbaa4; }
.banner:before { content: '✦'; position: absolute; right: 28%; top: -24px; font-size: 110px; color: #cab29a55; pointer-events: none; }
.booking { position: relative; box-shadow: 0 23px 55px #493e3420; }
.booking:before { content: '✧'; position: absolute; top: 19px; left: 25px; color: #e0c4a5; font-size: 30px; }
.faq details { transition: background-color .2s,padding .2s; }
.faq details[open] { background: #f4eae0; padding-left: 18px; padding-right: 18px; }
.ai-theme[hidden] { display: none !important; }
.ai-choice { background: #f3e9de; border: 1px solid #dfcbb7; padding: 16px 18px; border-radius: 5px; }
.ai-check { display: flex; align-items: flex-start; gap: 13px; cursor: pointer; }
.ai-check input { width: 20px; height: 20px; flex: 0 0 20px; margin: 2px 0 0; accent-color: #6b5745; }
.ai-check span { display: flex; flex-direction: column; gap: 5px; }
.ai-check strong { font-size: 15px; color: #4b392b; }
.ai-check small, .field-help { color: #756659; font-size: 12px; line-height: 1.5; }
.ai-theme { padding: 2px 0 8px; }
.time-select-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.time-select-row > div { display: flex; flex-direction: column; gap: 7px; }
.time-select-row label { color: #725c49; }
@media (max-width: 480px) { .time-select-row { grid-template-columns: 1fr; } }
.hero-art { min-height: 620px; padding: 42px 35px 45px; align-items: center; }
.real-booth-gallery { position: relative; width: 100%; height: 530px; max-width: 480px; }
.real-booth-primary { width: 80%; height: 96%; object-fit: cover; object-position: center 40%; border: 7px solid #fffaf4; border-radius: 180px 180px 9px 9px; box-shadow: 0 24px 55px #5643333a; }
.real-booth-detail { position: absolute; width: 47%; height: 46%; object-fit: cover; object-position: center; right: 0; bottom: 2%; border: 7px solid #fffaf4; border-radius: 7px; box-shadow: 0 16px 35px #56433340; transform: rotate(6deg); }
.real-booth-caption { position: absolute; left: -7%; top: 15%; color: #6a5140; background: #fffaf2e8; border: 1px solid #deccba; padding: 11px 16px; font-family: 'Cormorant Garamond',Georgia,serif; font-size: 23px; transform: rotate(-7deg); box-shadow: 0 8px 24px #5440321c; }
.real-booth-caption i { color: #a98969; font-style: normal; }

/* Higher, more playful illustration with refined party details. */
.hero { background: linear-gradient(115deg,#f7eee3 0%,#e9d8c7 58%,#d5bfa8 100%); min-height: 620px; }
.hero-copy { padding-top: 85px; }
.hero-art { min-height: 595px; padding: 0; overflow: hidden; }
.hero-art .arch { height: 78%; width: 82%; background: linear-gradient(150deg,#e7d3bd,#c8aa8b); }
.hero-art .booth { bottom: 95px; transform: rotate(-4deg) scale(1.08); box-shadow: 24px 26px 38px #5d433854; }
.hero-art .polaroid { bottom: 132px; right: 6%; transform: rotate(11deg) scale(1.07); }
.hero-art:before { content: '✦  ·  ✧'; position: absolute; top: 36px; right: 45px; z-index: 4; font-size: 28px; letter-spacing: 16px; color: #fff7e7; transform: rotate(12deg); }
.hero-art:after { content: ''; position: absolute; z-index: 1; top: 12%; left: 4%; width: 42px; height: 42px; border: 2px solid #fff9ed; border-radius: 50%; box-shadow: 30px 48px 0 -16px #a7896f, 45px 190px 0 -17px #fffaf0; }
.hero-art .star.one { top: 16%; left: 17%; }
.hero-art .star.two { bottom: 34%; right: 8%; }
.hero .promise-strip span { box-shadow: 0 8px 22px #674c3b12; }

@media (max-width: 800px) {
  .hero-copy { padding: 60px 32px 10px; }
  .hero h1 { font-size: clamp(54px, 12vw, 78px); letter-spacing: -1.8px; }
  .section { padding-top: 78px; padding-bottom: 78px; }
  .booking { border-radius: 6px; }
  .hero-art { min-height: 460px; padding: 30px 25px 35px; }
  .real-booth-gallery { height: 390px; max-width: 350px; }
  .real-booth-caption { left: -2%; }
  .hero { min-height: 0; }
  .hero-copy { padding: 58px 28px 20px; }
  .hero-art { min-height: 430px; }
  .hero-art .booth { bottom: 58px; transform: rotate(-4deg) scale(.98); }
  .hero-art .polaroid { bottom: 100px; }
}

/* A celebratory, warm expression of the Forever Memories identity. */
body { background: #fffbf8; }
.nav { border-bottom-color: #f0e5e4; }
.hero { background: linear-gradient(120deg,#fff3e8 0%,#f5e1e8 52%,#e9e0f4 100%); border-color: #efdee2; }
.hero h1 em { color: #a66b88; }
.hero-art { background: radial-gradient(circle at 53% 40%,#fff9f7,#f2dce5 56%,transparent 78%); }
.hero-art .arch { background: linear-gradient(155deg,#efc6d7,#ddc7eb); }
.hero-art .booth .screen { background: linear-gradient(135deg,#eec4dc,#cbbbe9); }
.hero-art:before { color: #d99bb6; }
.hero-art .star { color: #fff9f0; text-shadow: 0 5px 14px #bb8aa8a0; }
.hero-art .polaroid .photo { background: linear-gradient(145deg,#f4c3ba,#d5b5e8 55%,#ad8aa8); }
.hero-art .polaroid { transform: rotate(12deg) scale(1.08); }
.hero .promise-strip span { background: #fff9f5; border-color: #efd9e2; color: #805c68; }
.eyebrow { color: #9a657b; }
.eyebrow:before, .hero .eyebrow:before { background: #d79ab0; }
.btn { background: #8e5970; border-color: #8e5970; }
.btn:hover { background: #a86f86; border-color: #a86f86; }
.ribbon { background: #855b73; box-shadow: 0 14px 32px #855b7330; }
.ribbon:after { border-color: #f0c8dd77; }
.ribbon span:before { color: #ffd8e5; }
.step,.package { background: #fffdfa; border-color: #f0e2e3; box-shadow: 0 12px 28px #ae829019; }
.step .number { color: #c99ab0; }
.step:after { color: #d5a2bc; }
.package:before { background: linear-gradient(90deg,#f2d7dd,#caaedb,#f5ddc7); }
.package.featured { background: #78586d; border-color: #78586d; }
.package.featured:before { background: linear-gradient(90deg,#f1c3d8,#f8dec0,#d9c8ed); }
.package .tag { background: #f7e5ec; color: #86576e; }
.package-tags .popular-tag { background: #f0c8a5; color: #694c34; }
.package .price { color: #a96e89; }
.package.featured .price { color: #ffdfbd; }
.package li:before { color: #ca8eac; }
.package li:last-child { background: #fcf0f1; border-color: #edcdd7; color: #86586a; }
.package.featured li:last-child { background: #947488; color: #fff6f5; border-color: #c69eb4; }
.moment { border-color: #efdfe2; }
.moment .visual { color: #a56c88; }
.banner { background: linear-gradient(110deg,#f9e2e5,#f4e7d6); border-color: #edd4d9; }
.booking { background: linear-gradient(135deg,#805c72,#6f5a76); box-shadow: 0 23px 55px #805c7225; }
.booking p { color: #f1e3ec; }
.booking:before { color: #f1c3d8; }
.future { background: linear-gradient(125deg,#89667d,#6d5c7b); }
.future h2 em { color: #ffcfdf; }
.future p { color: #f2e2ed; }
.future:after { color: #e6b5dc; }
.future .future-chip { border-color: #f7d6e6; }
.faq details[open] { background: #fff0f3; }
.legal { background: #f6eeeb; }
.footer { border-top-color: #efdde0; }
