:root { --ink:#3a2730; --muted:#715a65; --rose:#b8466d; --rose-dark:#8e2d4c; --rose-pale:#fbe6ee; --blush:#fff2f6; --cream:#fff5f9; --line:#edced9; --rose-soft:#f3c6d5; --white:#fff; --shadow:0 24px 60px rgba(79,28,48,.11); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.shipping-bar { display:flex; justify-content:center; gap:11px; padding:9px 20px; background:var(--ink); color:#fff9f5; font-size:11px; letter-spacing:.12em; font-weight:700; text-transform:uppercase; }
.shipping-bar-dot { color:var(--rose-soft); }
.site-header { width:min(1240px,calc(100% - 48px)); min-height:100px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; align-items:center; flex:0 0 auto; }
.brand img { width:118px; height:auto; display:block; mix-blend-mode:multiply; }
.main-nav { display:flex; align-items:center; gap:28px; margin-left:auto; font-size:14px; font-weight:600; color:#594640; }
.main-nav>a:not(.nav-cta) { transition:color .2s ease; }
.main-nav>a:not(.nav-cta):hover,.text-link:hover { color:var(--rose-dark); }
.nav-cta,.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:999px; font-weight:700; transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.nav-cta { padding:11px 17px; background:var(--rose-pale); color:var(--rose-dark); }
.nav-cta:hover,.button:hover { transform:translateY(-2px); }
.header-cart { display:inline-flex; align-items:center; gap:7px; margin-left:8px; border:0; background:transparent; color:var(--ink); font-size:13px; font-weight:700; }.header-cart>span { color:var(--rose-dark); font-size:21px; line-height:1; }.header-cart b { display:grid; place-items:center; min-width:19px; height:19px; border-radius:999px; background:var(--rose); color:#fff; font-size:10px; }
.nav-toggle { display:none; border:0; background:transparent; padding:8px; }
.nav-toggle span:not(.sr-only) { display:block; width:25px; height:2px; margin:5px; border-radius:3px; background:var(--ink); }
.hero { width:min(1240px,calc(100% - 48px)); min-height:600px; margin:0 auto 96px; display:grid; grid-template-columns:1fr .95fr; align-items:center; gap:64px; }
.eyebrow { margin:0 0 12px; color:var(--rose-dark); font-size:11px; font-weight:700; letter-spacing:.15em; line-height:1.3; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:"Playfair Display",serif; font-weight:600; line-height:1.05; }
.hero h1 { max-width:570px; margin-bottom:22px; font-size:clamp(52px,6.4vw,88px); letter-spacing:-.06em; }
.hero h1 em { color:var(--rose); font-weight:600; }
.hero-text { max-width:500px; margin-bottom:30px; color:var(--muted); font-size:18px; line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.button { border:1px solid transparent; padding:14px 22px; font-size:14px; }
.button-primary { background:var(--rose); color:#fff; box-shadow:0 11px 23px rgba(142,45,76,.24); }
.button-primary:hover { background:var(--rose-dark); box-shadow:0 15px 28px rgba(142,45,76,.3); }
.button-light { background:#fff; color:var(--rose-dark); }
.button-outline { border-color:var(--line); background:#fff; color:var(--ink); }
.text-link { display:inline-flex; align-items:center; gap:7px; border:0; padding:0; background:none; color:var(--rose-dark); font-weight:700; font-size:14px; transition:color .2s ease; }
.hero-notes { display:flex; flex-wrap:wrap; gap:17px; margin-top:42px; color:var(--muted); font-size:12px; font-weight:600; }
.hero-notes b { color:var(--rose); }
.hero-visual { min-height:530px; position:relative; display:grid; place-items:center; overflow:hidden; border-radius:180px 180px 20px 20px; background:linear-gradient(145deg,#f9dce7,#fff8fa 60%,#efc7d5); }
.hero-arch { position:absolute; inset:54px 56px 0; border:1px solid rgba(116,77,68,.17); border-bottom:0; border-radius:220px 220px 0 0; }
.gift { position:absolute; border-radius:7px; box-shadow:0 24px 35px rgba(81,48,41,.2); }
.gift-large { width:230px; height:195px; top:213px; right:24%; background:linear-gradient(135deg,#9f385b,#d990a8); transform:rotate(-7deg); }
.gift-small { width:128px; height:120px; top:331px; left:17%; background:linear-gradient(135deg,#e2adbd,#f9dce7); transform:rotate(10deg); }
.gift-ribbon { position:absolute; inset:0 45%; background:rgba(255,249,243,.86); }
.gift-bow:before,.gift-bow:after { content:""; position:absolute; z-index:2; top:-29px; width:67px; height:39px; border:9px solid rgba(255,249,243,.9); }
.gift-bow:before { left:47%; border-radius:55px 55px 8px 55px; transform:rotate(18deg); }
.gift-bow:after { right:47%; border-radius:55px 55px 55px 8px; transform:rotate(-18deg); }
.gift-label { position:absolute; z-index:3; left:50%; top:47%; padding:7px 9px; background:#fff9f5; color:var(--rose-dark); font-family:"Playfair Display",serif; font-size:13px; transform:translate(-50%,-50%) rotate(4deg); white-space:nowrap; }
.sparkle { position:absolute; color:#a36759; font-size:27px; }
.sparkle-one { top:125px; left:21%; }.sparkle-two { top:177px; right:17%; color:#fff9f4; }.sparkle-three { bottom:57px; right:23%; font-size:42px; color:#b98375; }
.hero-stamp { position:absolute; left:13%; top:103px; width:105px; height:105px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid #b07969; border-radius:50%; color:#87574d; font-size:11px; text-transform:uppercase; letter-spacing:.08em; transform:rotate(-12deg); }
.hero-stamp strong { font-family:"Playfair Display",serif; font-size:17px; font-style:italic; text-transform:none; letter-spacing:0; }.hero-stamp i { font-style:normal; }
.intro-section { width:min(700px,calc(100% - 48px)); margin:0 auto 110px; text-align:center; }.intro-section h2,.section-heading h2,.cta-section h2 { margin-bottom:17px; font-size:clamp(36px,4vw,54px); letter-spacing:-.045em; }.intro-section>p:last-child { color:var(--muted); font-size:17px; }
.catalog-section,.steps-section { width:min(1240px,calc(100% - 48px)); margin:0 auto 112px; }.section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:30px; }.section-heading h2 { margin:0; }
.catalog-status { display:none; margin-bottom:20px; color:var(--muted); font-size:14px; }.catalog-status.is-visible { display:block; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }.product-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#fff; transition:transform .25s ease,box-shadow .25s ease; }.product-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }.product-image,.product-placeholder { aspect-ratio:1/.9; display:block; width:100%; object-fit:cover; background:linear-gradient(145deg,#f0d9d0,#faf4f0); }.product-placeholder { display:grid; place-items:center; color:#a77163; font-family:"Playfair Display",serif; font-size:29px; }.product-info { padding:21px; }.product-category { display:block; margin-bottom:7px; color:var(--rose-dark); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }.product-info h3 { margin-bottom:8px; font-size:27px; letter-spacing:-.04em; }.product-info p { min-height:48px; margin-bottom:18px; color:var(--muted); font-size:14px; }.product-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; }.product-price { color:var(--ink); font-size:15px; font-weight:700; }.product-order { border:0; background:none; color:var(--rose-dark); font-weight:700; font-size:13px; }.empty-catalog { grid-column:1/-1; padding:43px 25px; border:1px dashed #d8bbb0; border-radius:18px; background:var(--blush); text-align:center; }.empty-catalog h3 { margin-bottom:9px; font-size:31px; }.empty-catalog p { max-width:470px; margin:0 auto 18px; color:var(--muted); }
.occasion-section { width:min(1240px,calc(100% - 48px)); margin:0 auto 112px; display:grid; grid-template-columns:1.1fr .9fr; gap:20px; }.occasion-card { min-height:280px; padding:42px; border-radius:18px; }.occasion-card-main { display:flex; flex-direction:column; justify-content:center; background:var(--rose); color:#fff; }.occasion-card-main .eyebrow { color:#fcece6; }.occasion-card-main h3 { max-width:460px; margin-bottom:22px; font-size:45px; letter-spacing:-.045em; }.occasion-card-main .text-link { color:#fff; }.occasion-card-list { display:grid; grid-template-columns:repeat(2,1fr); gap:11px; align-content:center; background:var(--rose-pale); }.occasion-card-list span { padding:12px 14px; border:1px solid rgba(132,83,70,.2); border-radius:999px; color:#6d4a40; font-size:13px; font-weight:600; text-align:center; }
.custom-gift-section { width:min(1040px,calc(100% - 48px)); margin:0 auto 112px; display:grid; grid-template-columns:260px minmax(0,1fr); align-items:center; gap:65px; padding:42px 58px; border:1px solid var(--line); border-radius:22px; background:linear-gradient(115deg,#fff 0,#f9efeb 100%); }.custom-gift-section h2 { max-width:630px; margin-bottom:16px; font-size:clamp(36px,4vw,52px); letter-spacing:-.05em; }.custom-gift-section p:not(.eyebrow) { max-width:620px; margin-bottom:25px; color:var(--muted); }.custom-gift-illustration { position:relative; width:215px; height:215px; border-radius:50%; background:#e8c7bc; color:#9b665a; transform:rotate(-7deg); }.custom-gift-illustration:before,.custom-gift-illustration:after { content:""; position:absolute; border:1px solid rgba(122,77,66,.32); border-radius:50%; }.custom-gift-illustration:before { inset:17px; }.custom-gift-illustration:after { inset:35px; }.custom-gift-illustration span { position:absolute; top:25px; left:30px; font-size:42px; }.custom-gift-illustration i { position:absolute; right:29px; bottom:32px; font-size:26px; font-style:normal; }.custom-gift-illustration b { position:absolute; top:68px; left:70px; z-index:2; text-align:center; font-family:"Playfair Display",serif; font-size:29px; font-style:italic; line-height:.9; }
.steps-list { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; padding:0; margin:0; list-style:none; }.steps-list li { position:relative; padding-top:49px; border-top:1px solid #d8c0b7; }.steps-list span { position:absolute; top:13px; color:var(--rose); font-size:12px; font-weight:700; letter-spacing:.1em; }.steps-list h3 { margin-bottom:9px; font-size:30px; letter-spacing:-.04em; }.steps-list p { color:var(--muted); font-size:15px; }
.cta-section { width:min(1240px,calc(100% - 48px)); margin:0 auto 76px; padding:60px; display:flex; justify-content:space-between; align-items:center; gap:25px; border-radius:22px; background:var(--ink); color:#fff; }.cta-section .eyebrow { color:#dca999; }.cta-section h2 { max-width:600px; margin:0; }
.site-footer { width:min(1240px,calc(100% - 48px)); margin:auto; padding:38px 0 30px; display:grid; grid-template-columns:160px 1fr auto; align-items:center; gap:25px; border-top:1px solid var(--line); }.brand-footer img { width:102px; }.site-footer p { margin:0; color:var(--muted); font-size:13px; }.site-footer>div { display:flex; gap:18px; font-size:13px; font-weight:700; }.site-footer small { grid-column:1/-1; padding-top:20px; color:#9b8982; font-size:11px; }
.whatsapp-bubble { position:fixed; z-index:20; right:22px; bottom:22px; display:flex; align-items:center; gap:8px; padding:11px 15px 11px 11px; border-radius:999px; background:#2e9d67; color:white; box-shadow:0 14px 28px rgba(22,112,72,.28); font-weight:700; font-size:13px; transition:transform .2s ease; }.whatsapp-bubble:hover { transform:translateY(-3px); }.whatsapp-icon { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:#fff; color:#2e9d67; font-family:Arial,sans-serif; font-size:23px; font-weight:900; transform:rotate(-30deg); }
.cart-backdrop { position:fixed; z-index:39; inset:0; background:rgba(50,34,30,.42); backdrop-filter:blur(3px); }.cart-drawer { position:fixed; z-index:40; top:0; right:0; bottom:0; width:min(440px,100%); display:flex; flex-direction:column; padding:28px; background:#fffdfb; box-shadow:-20px 0 50px rgba(54,35,30,.17); transform:translateX(105%); transition:transform .28s ease; }.cart-drawer.is-open { transform:translateX(0); }.cart-head { display:flex; align-items:start; justify-content:space-between; gap:15px; padding-bottom:21px; border-bottom:1px solid var(--line); }.cart-head h2 { margin:0; font-size:36px; letter-spacing:-.05em; }.cart-head .eyebrow { margin-bottom:5px; }.cart-close { width:37px; height:37px; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--ink); font-size:27px; line-height:1; }.cart-items { flex:1; overflow:auto; display:grid; align-content:start; gap:13px; padding:20px 0; }.cart-empty { padding:50px 12px; color:var(--muted); text-align:center; }.cart-empty strong { display:block; margin-bottom:7px; color:var(--ink); font-family:"Playfair Display",serif; font-size:26px; }.cart-item { display:grid; grid-template-columns:64px minmax(0,1fr); gap:12px; padding-bottom:14px; border-bottom:1px solid #f0e4df; }.cart-item-image { width:64px; height:64px; border-radius:10px; object-fit:cover; background:var(--rose-pale); }.cart-item h3 { margin:0 0 2px; font-size:19px; letter-spacing:-.03em; }.cart-item-price { color:var(--rose-dark); font-size:12px; font-weight:700; }.cart-item-controls { display:flex; align-items:center; gap:8px; margin-top:8px; }.cart-quantity { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; }.cart-quantity button { width:25px; height:25px; border:0; background:transparent; color:var(--rose-dark); font-weight:700; }.cart-quantity b { min-width:20px; text-align:center; font-size:12px; }.cart-remove { margin-left:auto; border:0; background:transparent; color:#a7584c; font-size:11px; font-weight:700; }.cart-summary { display:grid; gap:14px; padding:19px 0; border-top:1px solid var(--line); }.cart-summary>div { display:flex; align-items:baseline; justify-content:space-between; }.cart-summary span { color:var(--muted); font-size:13px; }.cart-summary strong { font-family:"Playfair Display",serif; font-size:28px; }.cart-summary .button:disabled { cursor:not-allowed; opacity:.5; transform:none; }.cart-custom { display:flex; gap:12px; padding:17px; border-radius:13px; background:var(--rose-pale); color:#694840; }.cart-custom>span { color:var(--rose-dark); font-size:24px; }.cart-custom strong { display:block; font-family:"Playfair Display",serif; font-size:20px; }.cart-custom p { margin:1px 0 6px; font-size:12px; }.cart-custom a { color:var(--rose-dark); font-size:12px; font-weight:700; }
.admin-page { min-height:100vh; background:linear-gradient(120deg,#f6e7e1,#fffdfa 48%,#f0d8cf); }.admin-shell { width:min(1180px,calc(100% - 40px)); margin:auto; padding:42px 0 70px; }.login-card { width:min(480px,100%); margin:8vh auto; padding:40px; border:1px solid rgba(187,133,118,.22); border-radius:20px; background:rgba(255,255,255,.8); box-shadow:var(--shadow); }.login-card .brand { margin-bottom:36px; }.login-card h1,.admin-header h1 { margin-bottom:10px; font-size:43px; letter-spacing:-.05em; }.login-card>p:not(.eyebrow) { color:var(--muted); }.login-card form { display:grid; gap:16px; margin:30px 0 22px; }.login-card label,.admin-form-card label { display:grid; gap:7px; color:#5a4540; font-size:13px; font-weight:700; }.login-card input,.admin-form-card input,.admin-form-card textarea { width:100%; border:1px solid #ddc9c1; border-radius:10px; background:#fff; color:var(--ink); outline:none; padding:12px; font-size:14px; }.login-card input:focus,.admin-form-card input:focus,.admin-form-card textarea:focus { border-color:var(--rose); box-shadow:0 0 0 3px rgba(183,133,118,.15); }.form-message { min-height:20px; margin:0; color:var(--rose-dark); font-size:13px; font-weight:600; }.form-message.is-error { color:#a43029; }.admin-header { display:flex; align-items:center; gap:24px; padding-bottom:30px; border-bottom:1px solid #e4cec5; }.admin-header .brand img { width:95px; }.admin-header h1 { margin:0; font-size:39px; }.admin-header .eyebrow { margin:0 0 4px; }.admin-header-actions { display:flex; align-items:center; gap:18px; margin-left:auto; }.admin-summary { display:flex; justify-content:space-between; align-items:center; gap:25px; margin:24px 0; padding:20px 23px; border-radius:15px; background:var(--ink); color:#fff; }.admin-summary div { display:flex; align-items:baseline; gap:12px; }.admin-summary span { color:#e8b9ab; font-size:11px; font-weight:700; letter-spacing:.1em; }.admin-summary strong { font-family:"Playfair Display",serif; font-size:37px; line-height:1; }.admin-summary p { margin:0; color:#eee0d9; font-size:13px; }.admin-layout { display:grid; grid-template-columns:minmax(320px,.84fr) minmax(0,1.16fr); gap:22px; align-items:start; }.admin-form-card,.admin-list-card { padding:27px; border:1px solid rgba(187,133,118,.22); border-radius:18px; background:rgba(255,255,255,.88); box-shadow:0 12px 35px rgba(86,55,46,.06); }.admin-card-head { display:flex; justify-content:space-between; align-items:start; gap:14px; margin-bottom:23px; }.admin-card-head h2 { margin:0; font-size:29px; letter-spacing:-.04em; }.admin-card-head .eyebrow { margin-bottom:6px; }.text-button { border:0; background:transparent; color:var(--rose-dark); font-weight:700; font-size:13px; }.admin-form-card form { display:grid; gap:16px; }.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.admin-form-card textarea { min-height:100px; resize:vertical; }.admin-form-card small { color:var(--muted); font-size:11px; font-weight:500; }.switch-field { display:flex!important; grid-template-columns:auto 1fr; align-items:center; gap:10px!important; }.switch-field input { width:17px!important; height:17px; accent-color:var(--rose); }.admin-product-list { display:grid; gap:11px; }.admin-product-row { display:grid; grid-template-columns:70px minmax(0,1fr) auto; align-items:center; gap:13px; padding:10px; border:1px solid var(--line); border-radius:12px; background:#fff; }.admin-product-thumb { width:70px; height:63px; border-radius:8px; background:var(--rose-pale); object-fit:cover; }.admin-product-row h3 { margin:0 0 2px; font-size:19px; letter-spacing:-.03em; }.admin-product-row p { margin:0; color:var(--muted); font-size:12px; }.admin-product-row small { display:inline-block; margin-top:4px; color:var(--rose-dark); font-size:11px; font-weight:700; }.admin-row-actions { display:flex; gap:7px; }.icon-button { width:33px; height:33px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--rose-dark); font-weight:700; }.icon-button.is-delete { color:#a43029; }.admin-empty { padding:30px 10px; color:var(--muted); text-align:center; font-size:14px; }
@media (max-width:820px) { .site-header,.hero,.catalog-section,.steps-section,.occasion-section,.cta-section,.site-footer { width:min(100% - 32px,1240px); }.site-header { min-height:82px; }.main-nav { display:none; position:absolute; z-index:30; top:82px; right:16px; left:16px; margin:0; padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow); flex-direction:column; align-items:stretch; }.main-nav.is-open { display:flex; }.nav-toggle { display:block; margin-left:auto; }.nav-cta { text-align:center; }.header-cart { margin-left:0; }.hero { min-height:0; margin-bottom:72px; grid-template-columns:1fr; gap:35px; }.hero-copy { padding-top:36px; }.hero h1 { font-size:59px; }.hero-visual { min-height:440px; }.intro-section { margin-bottom:72px; }.product-grid,.steps-list { grid-template-columns:1fr; }.occasion-section { grid-template-columns:1fr; margin-bottom:72px; }.custom-gift-section { grid-template-columns:1fr; gap:27px; margin-bottom:72px; padding:34px; }.custom-gift-illustration { width:170px; height:170px; }.custom-gift-illustration b { top:54px; left:54px; font-size:25px; }.occasion-card { min-height:220px; padding:30px; }.occasion-card-main h3 { font-size:37px; }.cta-section { margin-bottom:47px; padding:37px 30px; flex-direction:column; align-items:start; }.site-footer { grid-template-columns:1fr; gap:12px; }.site-footer>div { margin-top:4px; }.admin-layout { grid-template-columns:1fr; }.admin-header { flex-wrap:wrap; }.admin-header-actions { margin-left:0; }.admin-summary { align-items:start; flex-direction:column; }.admin-shell { width:min(100% - 28px,1180px); padding-top:25px; } }
@media (max-width:480px) { .shipping-bar { font-size:9px; gap:7px; }.hero h1 { font-size:48px; }.hero-text { font-size:16px; }.hero-visual { min-height:375px; border-radius:130px 130px 15px 15px; }.gift-large { right:18%; transform:scale(.83) rotate(-7deg); transform-origin:center; }.gift-small { left:7%; transform:scale(.8) rotate(10deg); }.hero-stamp { left:9%; transform:scale(.75) rotate(-12deg); transform-origin:top left; }.hero-arch { inset:45px 35px 0; }.section-heading { align-items:start; flex-direction:column; }.section-heading h2,.intro-section h2 { font-size:38px; }.whatsapp-label { display:none; }.whatsapp-bubble { right:16px; bottom:16px; padding:10px; }.occasion-card-list { grid-template-columns:1fr 1fr; }.field-grid { grid-template-columns:1fr; }.login-card { margin:3vh auto; padding:29px 23px; }.admin-form-card,.admin-list-card { padding:20px; }.admin-product-row { grid-template-columns:55px minmax(0,1fr); }.admin-product-thumb { width:55px; height:55px; }.admin-row-actions { grid-column:2; }.admin-header h1,.login-card h1 { font-size:35px; } }
