body {
  font-family: 'Inter', sans-serif;
  line-height: 1.65;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1rem; color: var(--af-soft-charcoal); }
h1, h2, h3, h4 { margin: 0 0 1rem; font-family: 'Cormorant Garamond', serif; font-weight: 600; line-height: 1.08; }
h1 { font-size: clamp(2.6rem, 6vw, 5.2rem); }
h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
h3 { font-size: 1.6rem; }

.af-container { width: min(1240px, calc(100% - 32px)); margin-inline: auto; }
.af-section { padding: 88px 0; }
.af-soft-section { background: #f3ece3; }
.af-main-content { min-height: 50vh; }
.af-site-wrap { overflow-x: clip; }
.af-topbar { background: var(--af-garnet-dark); color: #f7efe4; font-size: 0.93rem; }
.af-topbar-inner { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0; align-items: center; }
.af-topbar a { color: var(--af-gold-soft); font-weight: 600; }

.af-header { background: rgba(248,244,238,0.96); position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--af-border); backdrop-filter: blur(10px); }
.af-header-inner { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; min-height: 86px; }
.af-branding { display: flex; align-items: center; }
.af-logo-link { display: inline-flex; align-items: center; }
.af-logo-image, .custom-logo { max-height: 58px; width: auto; }
.af-nav { justify-self: center; }
.af-menu { list-style: none; display: flex; gap: 28px; padding: 0; margin: 0; align-items: center; }
.af-menu > li > a { font-size: 0.97rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; }
.af-header-actions { display: flex; gap: 14px; align-items: center; }
.af-search-link { width: 20px; height: 20px; display: inline-flex; }
.af-search-link svg { width: 100%; height: 100%; }
.af-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 24px; border-radius: 999px; font-weight: 700; border: 1px solid transparent; transition: .25s ease; cursor: pointer; }
.af-btn:hover { transform: translateY(-1px); }
.af-btn-primary { background: var(--af-garnet); color: white; box-shadow: var(--af-shadow); }
.af-btn-primary:hover { background: var(--af-garnet-dark); }
.af-btn-outline { border-color: var(--af-garnet); color: var(--af-garnet); background: transparent; }
.af-btn-outline-light { border-color: rgba(255,255,255,0.55); color: #fff; }
.af-btn-ghost { border-color: var(--af-border); background: #fff; }
.af-btn-whatsapp { background: var(--af-charcoal); color: white; }
.af-btn-small { padding: 11px 16px; font-size: 0.93rem; }
.af-menu-toggle { display: none; background: transparent; border: 0; width: 46px; height: 46px; padding: 8px; }
.af-menu-toggle span { display: block; height: 2px; margin: 6px 0; background: var(--af-charcoal); }
.af-mobile-nav { display: none; border-top: 1px solid var(--af-border); }
.af-mobile-menu { list-style: none; margin: 0; padding: 0 16px 18px; }
.af-mobile-menu li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--af-border); text-transform: uppercase; font-size: 0.95rem; font-weight: 600; }

.af-eyebrow { display: inline-block; margin-bottom: 16px; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--af-gold); font-weight: 700; }
.af-section-heading { margin-bottom: 34px; max-width: 720px; }
.af-section-heading.centered { text-align: center; margin-inline: auto; }
.af-section-heading p { font-size: 1.05rem; }

.af-hero { position: relative; min-height: calc(100vh - 130px); background: #1d1614; }
.af-hero-slides { position: relative; min-height: inherit; }
.af-hero-slide { position: absolute; inset: 0; background-size: cover; background-position: center top; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility .7s ease; }
.af-hero-slide.is-active { opacity: 1; visibility: visible; }
.af-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(25,19,16,.72) 0%, rgba(25,19,16,.54) 34%, rgba(25,19,16,.18) 70%, rgba(25,19,16,.08) 100%); }
.af-hero-content { position: relative; z-index: 2; min-height: calc(100vh - 130px); display: flex; align-items: center; }
.af-hero-copy { max-width: 680px; color: #fff; padding: 60px 0; }
.af-hero-copy h1 { font-size: clamp(3rem, 6vw, 6.3rem); max-width: 12ch; }
.af-hero-copy p { color: rgba(255,255,255,.88); font-size: 1.08rem; max-width: 56ch; }
.af-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.af-hero-nav { position: absolute; left: 50%; bottom: 34px; transform: translateX(-50%); z-index: 3; display: flex; justify-content: space-between; align-items: center; }
.af-hero-dots { display: flex; gap: 12px; }
.af-dot { width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(255,255,255,.6); background: transparent; }
.af-dot.is-active { background: var(--af-gold); border-color: var(--af-gold); }
.af-slider-arrow { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); color: #fff; width: 42px; height: 42px; border-radius: 50%; font-size: 1.45rem; display: inline-flex; align-items: center; justify-content: center; }

.af-intro-strip { padding-top: 34px; padding-bottom: 34px; }
.af-intro-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.af-intro-grid > div { background: #fff; border-radius: var(--af-radius-sm); padding: 20px; box-shadow: var(--af-shadow); }
.af-intro-grid strong { display: block; margin-bottom: 8px; font-size: 1rem; }
.af-intro-grid span { font-size: 0.95rem; color: var(--af-soft-charcoal); }

.af-collection-mosaic { display: grid; gap: 14px; grid-template-columns: 1.4fr 1fr 1fr; grid-auto-rows: 260px; }
.af-mosaic-card { position: relative; background-size: cover; background-position: center; border-radius: var(--af-radius); overflow: hidden; min-height: 220px; }
.af-mosaic-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,14,14,0.02) 0%, rgba(17,14,14,0.74) 100%); }
.af-mosaic-card.large { grid-row: span 2; }
.af-mosaic-card.tall { grid-row: span 2; }
.af-mosaic-card span { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 1; color: white; }
.af-mosaic-card small { display: block; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; margin-bottom: 6px; color: rgba(255,255,255,.8); }
.af-mosaic-card strong { font-size: 2rem; font-family: 'Cormorant Garamond', serif; line-height: 1; }

.af-products-slider, .af-products-grid { display: grid; gap: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.af-product-card { background: #fff; border-radius: var(--af-radius); overflow: hidden; box-shadow: var(--af-shadow); }
.af-product-thumb { display: block; position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #eee; }
.af-product-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.af-product-card:hover .af-product-thumb img { transform: scale(1.03); }
.af-badge { position: absolute; top: 16px; left: 16px; background: rgba(111, 23, 52, 0.92); color: #fff; padding: 7px 12px; border-radius: 999px; font-size: 0.76rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; z-index: 1; }
.af-product-body { padding: 20px; }
.af-product-meta { display: inline-block; margin-bottom: 10px; text-transform: uppercase; letter-spacing: .09em; color: #8b7056; font-size: .75rem; font-weight: 700; }
.af-product-body h3 { font-size: 1.65rem; margin-bottom: 12px; }
.af-price-row { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.af-price-row strong { font-size: 1.05rem; }
.af-price-row del { color: #988b84; }
.af-product-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.af-editorial-banner { padding-top: 98px; padding-bottom: 98px; }
.af-editorial-grid, .af-story-grid, .af-social-grid, .af-contact-grid, .af-product-single-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px; align-items: center; }
.af-editorial-image img, .af-social-strip img, .af-featured-image img { border-radius: var(--af-radius); box-shadow: var(--af-shadow); }
.af-editorial-copy p { font-size: 1.06rem; max-width: 56ch; }

.af-occasion-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.af-occasion-grid a { padding: 22px; background: #fff; border-radius: 18px; text-align: center; font-weight: 700; box-shadow: var(--af-shadow); }
.af-occasion-grid a:hover { background: var(--af-garnet); color: #fff; }

.af-story-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.af-mini-card, .af-contact-card { padding: 24px; background: #fff; border-radius: 18px; box-shadow: var(--af-shadow); }
.af-mini-card strong { display: block; margin-bottom: 8px; }
.af-text-link { font-weight: 700; color: var(--af-garnet); }

.af-social-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.af-social-strip img { aspect-ratio: 4 / 5; object-fit: cover; }
.af-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.af-review-grid blockquote { margin: 0; padding: 28px; background: #fff; border-radius: 18px; box-shadow: var(--af-shadow); font-size: 1rem; color: var(--af-soft-charcoal); }

.af-cta-section { padding-top: 34px; }
.af-cta-box { background: linear-gradient(135deg, var(--af-charcoal), #2d2020); color: white; border-radius: 28px; padding: 34px; display: flex; justify-content: space-between; align-items: center; gap: 20px; box-shadow: var(--af-shadow); }
.af-cta-box p { color: rgba(255,255,255,.86); }

.af-faq-list { display: grid; gap: 16px; max-width: 900px; margin-inline: auto; }
.af-faq-list details { background: #fff; border-radius: 16px; padding: 22px 24px; box-shadow: var(--af-shadow); }
.af-faq-list summary { cursor: pointer; font-weight: 700; list-style: none; }
.af-faq-list summary::-webkit-details-marker { display: none; }
.af-faq-list p { margin-top: 12px; }

.af-page-hero { padding: 90px 0 60px; background: linear-gradient(180deg, #f6f0e8 0%, #f8f4ee 100%); border-bottom: 1px solid var(--af-border); }
.af-page-hero p { max-width: 60ch; }
.af-generic-page-hero, .af-product-hero { text-align: left; }
.af-bridal-hero { position: relative; color: white; background-size: cover; background-position: center top; }
.af-bridal-hero .af-overlay { position: absolute; inset: 0; }
.af-bridal-hero .bridal-hero-inner { position: relative; z-index: 1; padding: 70px 0; }
.af-collections-hero { background: #f4ece2; }

.af-page-content { max-width: 850px; }
.af-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.af-post-card { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: var(--af-shadow); }
.af-post-thumb { display: block; aspect-ratio: 16 / 11; background: #eee; }
.af-post-thumb img { width: 100%; height: 100%; object-fit: cover; }
.af-post-content { padding: 20px; }
.af-post-content h2 { font-size: 1.8rem; }

.af-collection-grid-page { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.af-collection-grid-page article { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: var(--af-shadow); }
.af-collection-grid-page img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.af-collection-grid-page h3, .af-collection-grid-page p { padding-inline: 18px; }
.af-collection-grid-page h3 { margin-top: 16px; margin-bottom: 8px; }
.af-collection-grid-page p { padding-bottom: 18px; }

.af-product-single-section { padding-top: 72px; }
.af-product-gallery img { width: 100%; border-radius: 22px; box-shadow: var(--af-shadow); }
.af-product-info h1 { font-size: clamp(2.3rem, 4vw, 4.2rem); }
.af-price-row.single strong { font-size: 1.4rem; }
.af-detail-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 22px 0; }
.af-detail-list div { padding: 16px; border: 1px solid var(--af-border); border-radius: 16px; background: #fff; }
.af-detail-list span { display: block; font-size: 0.82rem; text-transform: uppercase; letter-spacing: .1em; color: #8b7056; margin-bottom: 8px; }
.af-product-description { margin: 24px 0; }

.af-contact-grid { align-items: stretch; }
.af-form-placeholder { background: #f5efe6; border: 1px dashed #caa96d; padding: 22px; border-radius: 14px; margin-top: 14px; color: #846c47; }

.af-footer { background: #1d1717; color: #f1e9df; margin-top: 90px; }
.af-footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 26px; padding: 68px 0 30px; }
.af-footer h3, .af-footer h4 { color: #fff; margin-bottom: 16px; }
.af-footer p, .af-footer a { color: rgba(241,233,223,.8); }
.af-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.af-footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 18px 0 24px; }

.af-floating-whatsapp { position: fixed; right: 18px; bottom: 18px; background: #1aa358; color: #fff; border-radius: 999px; padding: 16px 20px; font-weight: 800; box-shadow: 0 18px 30px rgba(0,0,0,.22); z-index: 60; }

.screen-reader-text { position: absolute; left: -9999px; }

@media (max-width: 1100px) {
  .af-products-slider, .af-products-grid, .af-collection-grid-page { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .af-occasion-grid { grid-template-columns: repeat(3, 1fr); }
  .af-collection-mosaic { grid-template-columns: repeat(2, 1fr); }
  .af-mosaic-card.large, .af-mosaic-card.tall { grid-row: auto; }
  .af-post-grid, .af-review-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .af-header-inner { grid-template-columns: auto auto auto; }
  .af-nav { display: none; }
  .af-menu-toggle { display: inline-block; justify-self: center; }
  .af-mobile-nav.is-open { display: block; }
  .af-topbar-inner { flex-direction: column; text-align: center; }
  .af-intro-grid, .af-editorial-grid, .af-story-grid, .af-social-grid, .af-contact-grid, .af-product-single-grid, .af-footer-grid { grid-template-columns: 1fr; }
  .af-story-cards, .af-detail-list { grid-template-columns: 1fr; }
  .af-hero { min-height: 86vh; }
  .af-hero-content { min-height: 86vh; }
  .af-social-strip { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
  .af-section { padding: 64px 0; }
  .af-header-actions .af-btn-whatsapp { display: none; }
  .af-products-slider, .af-products-grid, .af-collection-grid-page, .af-post-grid, .af-review-grid, .af-occasion-grid, .af-social-strip { grid-template-columns: 1fr; }
  .af-intro-grid { grid-template-columns: 1fr; }
  .af-hero-copy h1 { max-width: 10ch; }
  .af-cta-box { flex-direction: column; align-items: flex-start; }
  .af-hero-nav { bottom: 18px; }
}
