/* Bella Flor — shared luxury editorial system for every internal page */
:root { --bf-ink:#28231f; --bf-soft:#5f574e; --bf-ivory:#f5f0e8; --bf-paper:#fbf8f2; --bf-stone:#ded3c4; --bf-gold:#a7804d; --bf-line:rgba(49,38,28,.15); }
html { scroll-behavior:smooth; }
body { background:var(--bf-ivory)!important; color:var(--bf-ink); font-family:'Montserrat',sans-serif; }
body>main { min-height:70vh; padding-top:76px!important; }
h1,h2,h3 { text-wrap:balance; }
p { text-wrap:pretty; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--bf-gold); outline-offset:3px; }

/* Mastheads */
.about-page,.blog-page,.collection-page,.contact-page,.tools-page,.reviews-page { padding-top:0!important; background:var(--bf-ivory)!important; }
.about-banner,.blog-banner,.tools-banner,.collection-header,.reviews-header { position:relative; overflow:hidden; margin:0!important; padding:clamp(5rem,10vw,8.5rem) max(1.25rem,calc((100vw - 1280px)/2 + 5rem))!important; background:var(--bf-ink)!important; color:#f5ede1; text-align:left!important; }
.about-banner::before,.blog-banner::before,.tools-banner::before,.collection-header::before,.reviews-header::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 84% 20%,rgba(184,148,93,.18),transparent 30%),linear-gradient(115deg,rgba(255,255,255,.03),transparent 55%); pointer-events:none; }
.about-banner::after,.blog-banner::after,.tools-banner::after,.collection-header::after,.reviews-header::after { content:'BELLA FLOR  ·  HANDMADE IN THE UK'; position:absolute; right:max(1.25rem,calc((100vw - 1280px)/2 + 5rem)); bottom:2rem; color:#8f8274; font-size:.58rem; letter-spacing:.22em; }
.about-banner h1,.blog-banner h1,.tools-banner h1,.collection-header h1,.reviews-header h1,.reviews-header h2 { position:relative; z-index:1; max-width:920px; margin:0 0 1.2rem!important; color:#f5ede1!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(2.8rem,6.5vw,6.25rem)!important; font-style:normal!important; font-weight:400!important; letter-spacing:-.045em!important; line-height:1.04!important; text-transform:none!important; }
.about-banner>p,.blog-banner>p,.tools-banner>p,.collection-tagline,.reviews-header>p { position:relative; z-index:1; max-width:620px; color:#c8beb1!important; font-size:.73rem!important; font-weight:500; letter-spacing:.16em!important; line-height:1.8; text-transform:uppercase; }
.about-banner-line { display:none!important; }
.collection-header-rule { display:block!important; }
.collection-header-rule>span { display:none!important; }

/* About */
.about-content { max-width:1120px!important; padding:clamp(5rem,9vw,9rem) clamp(1.25rem,5vw,5rem)!important; }
.about-section { display:grid!important; grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr); gap:clamp(2rem,8vw,8rem); align-items:start; margin-bottom:clamp(5rem,9vw,9rem)!important; }
.about-section h2 { position:sticky!important; top:110px; margin:0!important; color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(2rem,4vw,3.5rem)!important; font-style:normal!important; font-weight:400; letter-spacing:-.035em!important; line-height:1.15; }
.about-section h2::after { width:40px!important; height:1px!important; margin-top:1.5rem; background:var(--bf-gold)!important; }
.about-section p { color:var(--bf-soft)!important; font-size:.95rem!important; font-weight:400!important; line-height:2!important; }
.about-image-wrap,.about-image-wrap2 { width:100%!important; max-width:600px; margin:2.5rem auto 0!important; overflow:hidden; border-radius:10px!important; box-shadow:none!important; }
.about-image-wrap img,.about-image-wrap2 img { display:block; width:100%; max-height:640px; object-fit:cover; transition:transform .8s ease; }
.about-image-wrap img { height:auto!important; max-height:none; object-fit:contain; }
.about-image-wrap:hover img,.about-image-wrap2:hover img { transform:scale(1.025); }
.about-offer-list { margin-top:2.5rem!important; border-top:1px solid var(--bf-line); }
.about-offer-list li { display:grid!important; grid-template-columns:32px 1fr; padding:1.1rem 0!important; border-bottom:1px solid var(--bf-line); color:var(--bf-soft); line-height:1.65; }
.offer-bullet { color:var(--bf-gold)!important; }
.about-cta,.blog-post-cta,.tool-cta { padding:clamp(2.5rem,5vw,4.5rem)!important; border:0!important; border-radius:0!important; background:var(--bf-stone)!important; text-align:left!important; }
.about-cta p,.blog-post-cta p,.tool-cta p { color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif; font-size:clamp(1.15rem,2.5vw,1.8rem)!important; line-height:1.6!important; }
.about-cta a,.blog-post-cta a,.tool-cta a { display:inline-block; padding:1rem 1.5rem!important; border:1px solid var(--bf-ink)!important; border-radius:0!important; background:var(--bf-ink)!important; color:#fff!important; font-size:.68rem!important; font-weight:600!important; letter-spacing:.16em; text-decoration:none; text-transform:uppercase; }

/* Journal */
.blog-grid { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:clamp(2rem,4vw,4rem) clamp(1rem,2.5vw,2.5rem)!important; max-width:1280px!important; padding:clamp(5rem,9vw,9rem) clamp(1.25rem,5vw,5rem)!important; }
.blog-card { border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; color:var(--bf-ink)!important; text-decoration:none!important; transform:none!important; }
.blog-card-image { aspect-ratio:4/3; margin-bottom:1.5rem; overflow:hidden; border-radius:0!important; background:var(--bf-stone); }
.blog-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1)!important; }
.blog-card:hover .blog-card-image img { transform:scale(1.035); }
.blog-card-body { padding:0!important; }
.blog-card-date { display:block; margin-bottom:.8rem; color:#7a5c38!important; font-size:.62rem!important; font-weight:600; letter-spacing:.17em!important; text-transform:uppercase; }
.blog-card-title { margin-bottom:.9rem!important; color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(1.35rem,2.5vw,2.1rem)!important; font-weight:400!important; letter-spacing:-.025em; line-height:1.32!important; }
.blog-card-excerpt { color:var(--bf-soft)!important; font-size:.82rem!important; line-height:1.8!important; }
.blog-card-readmore { display:inline-block; margin-top:1.2rem; padding-bottom:.3rem; border-bottom:1px solid var(--bf-gold); color:var(--bf-ink)!important; font-size:.65rem!important; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.blog-post-header { max-width:1040px!important; padding:clamp(5rem,9vw,8rem) 1.25rem clamp(3rem,6vw,5rem)!important; text-align:center; }
.blog-post-header h1 { margin:.8rem auto 1.6rem!important; color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(2.7rem,7vw,5.8rem)!important; font-weight:400!important; letter-spacing:-.045em; line-height:1.08!important; }
.blog-post-header .blog-post-dek { max-width:720px!important; margin:auto; color:var(--bf-soft)!important; font-family:'Libre Baskerville',serif; font-size:clamp(1rem,2vw,1.3rem)!important; line-height:1.8!important; }
.blog-post-hero { max-width:1280px!important; height:min(70vw,760px)!important; margin:0 auto clamp(4rem,8vw,7rem)!important; border-radius:0!important; }
.blog-post-hero img { width:100%; height:100%; object-fit:cover; }
.blog-post-content { max-width:760px!important; padding:0 1.25rem clamp(5rem,9vw,9rem)!important; }
.blog-post-content h2 { margin:3.5rem 0 1.1rem!important; color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(1.7rem,4vw,2.65rem)!important; font-weight:400!important; letter-spacing:-.03em; line-height:1.25; }
.blog-post-content p,.blog-post-content li { color:var(--bf-soft)!important; font-size:.94rem!important; line-height:2!important; }
.blog-post-content a { color:#79592f!important; text-underline-offset:4px; }
.blog-post-content ul { padding-left:1.25rem!important; }
.blog-related { max-width:1280px!important; padding:0 clamp(1.25rem,5vw,5rem) clamp(6rem,9vw,9rem)!important; }
.blog-related h3 { margin-bottom:2rem!important; font-family:'Libre Baskerville',serif!important; font-size:2rem!important; font-weight:400; }
.blog-related .blog-grid { padding:0!important; }

/* Collection */
.collection-header { display:block!important; }
.filter-bar { display:flex!important; flex-wrap:wrap; justify-content:flex-start!important; gap:.6rem!important; max-width:1280px!important; margin:0 auto!important; padding:2rem clamp(1.25rem,5vw,5rem)!important; border-bottom:1px solid var(--bf-line); background:var(--bf-paper)!important; }
.filter-btn { padding:.7rem 1.1rem!important; border:1px solid var(--bf-line)!important; border-radius:0!important; background:transparent!important; color:var(--bf-soft)!important; font-size:.62rem!important; letter-spacing:.14em!important; text-transform:uppercase; }
.filter-btn.active,.filter-btn:hover { border-color:var(--bf-ink)!important; background:var(--bf-ink)!important; color:#fff!important; }
.carousel-wrapper { max-width:1380px!important; padding:clamp(4rem,8vw,7rem) clamp(3.5rem,7vw,6rem)!important; }
.cards-track { gap:clamp(1rem,2.5vw,2.5rem)!important; align-items:stretch!important; }
.bracelet-card,.bracelet-card.main { border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; opacity:1!important; transform:none!important; }
.card-image { aspect-ratio:4/5!important; height:auto!important; border-radius:0!important; background:var(--bf-stone)!important; }
.card-image img { transition:transform .8s cubic-bezier(.2,.7,.2,1)!important; }
.bracelet-card:hover .card-image img { transform:scale(1.035); }
.card-body { padding:1.25rem 0 0!important; }
.card-name { color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:1.35rem!important; font-weight:400!important; }
.card-material,.card-description { color:var(--bf-soft)!important; line-height:1.7!important; }
.card-footer { margin-top:1.2rem!important; padding-top:1rem; border-top:1px solid var(--bf-line); }
.card-price { color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:1.25rem!important; }
.card-view-btn { padding:.75rem 1rem!important; border:1px solid var(--bf-ink)!important; border-radius:0!important; background:var(--bf-ink)!important; color:#fff!important; font-size:.6rem!important; letter-spacing:.13em; text-transform:uppercase; }
.carousel-arrow { border:1px solid var(--bf-line)!important; background:var(--bf-paper)!important; color:var(--bf-ink)!important; box-shadow:none!important; }
.carousel-dot.active::after { background:var(--bf-gold)!important; }
.carousel-counter { color:var(--bf-soft)!important; }

/* Reviews */
.reviews-inner { max-width:1280px!important; padding:0!important; }
.reviews-header .stars-row { position:relative; z-index:1; justify-content:flex-start!important; }
.reviews-grid { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:1px!important; padding:clamp(5rem,8vw,8rem) clamp(1.25rem,5vw,5rem)!important; background:var(--bf-line); }
.review-card { min-height:330px; padding:clamp(2rem,4vw,3.5rem)!important; border:0!important; border-radius:0!important; background:var(--bf-paper)!important; box-shadow:none!important; transform:none!important; }
.reviewer-avatar { border-radius:50%!important; filter:grayscale(1); }
.reviewer-name { color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif; font-size:1.05rem!important; font-weight:400!important; }
.review-stars .star-icon { color:var(--bf-gold)!important; }
.review-text { color:var(--bf-soft)!important; font-family:'Libre Baskerville',serif; font-size:1rem!important; line-height:1.9!important; }
.review-product-tag { border-radius:0!important; background:var(--bf-stone)!important; color:var(--bf-ink)!important; }
.reviews-cta { padding:0 1.25rem 7rem!important; }
.reviews-cta button { border-radius:0!important; background:var(--bf-ink)!important; font-size:.68rem!important; letter-spacing:.14em; text-transform:uppercase; }

/* Contact */
.contact-page { padding:clamp(4rem,8vw,8rem) clamp(1.25rem,5vw,5rem)!important; }
.contact-card { display:grid!important; grid-template-columns:.9fr 1.1fr!important; max-width:1280px!important; min-height:720px; border:0!important; border-radius:0!important; background:var(--bf-paper)!important; box-shadow:none!important; }
.contact-image-panel { min-height:620px; }
.contact-image-panel img { width:100%; height:100%; object-fit:cover; }
.contact-image-overlay { background:linear-gradient(to top,rgba(22,18,14,.75),transparent 60%)!important; }
.contact-image-title { color:#fff!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(2rem,4vw,3.6rem)!important; font-weight:400!important; letter-spacing:-.03em!important; }
.contact-form-panel { display:flex; flex-direction:column; justify-content:center; padding:clamp(2.5rem,6vw,6rem)!important; }
.contact-form-panel h1 { color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(2.6rem,5vw,4.6rem)!important; font-weight:400!important; letter-spacing:-.045em!important; }
.contact-form-panel>p { color:var(--bf-soft)!important; line-height:1.8!important; }
.form-field label { color:#766a5d!important; font-size:.61rem!important; letter-spacing:.16em!important; }
.form-field input,.form-field select,.form-field textarea { padding:.9rem 0 .9rem 2rem!important; border:0!important; border-bottom:1px solid var(--bf-line)!important; border-radius:0!important; background:transparent!important; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:var(--bf-gold)!important; box-shadow:none!important; }
.submit-btn { border-radius:0!important; background:var(--bf-ink)!important; font-size:.68rem!important; letter-spacing:.14em; text-transform:uppercase; }
.contact-info-footer { border-top:1px solid var(--bf-line)!important; color:var(--bf-soft)!important; }

/* Tools */
.tools-grid { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:1px!important; max-width:1120px!important; padding:clamp(5rem,9vw,9rem) clamp(1.25rem,5vw,5rem)!important; background:var(--bf-line); }
.tool-card { min-height:360px; padding:clamp(2.5rem,5vw,4.5rem)!important; border:0!important; border-radius:0!important; background:var(--bf-paper)!important; box-shadow:none!important; transform:none!important; }
.tool-card:hover { background:var(--bf-stone)!important; }
.tool-card-icon { display:grid; width:54px!important; height:54px!important; place-items:center; border:1px solid var(--bf-gold); border-radius:50%!important; background:transparent!important; color:var(--bf-gold)!important; font-size:1rem!important; }
.tool-card h2 { margin-top:3.5rem; color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(1.6rem,3vw,2.5rem)!important; font-weight:400!important; letter-spacing:-.03em; }
.tool-card p { color:var(--bf-soft)!important; line-height:1.8!important; }
.tool-card-cta { color:var(--bf-ink)!important; font-size:.64rem!important; letter-spacing:.13em; text-transform:uppercase; }
.tool-content { max-width:920px!important; padding:clamp(5rem,9vw,9rem) 1.25rem!important; }
.tool-intro { color:var(--bf-soft)!important; font-family:'Libre Baskerville',serif; font-size:1.1rem!important; line-height:1.9!important; }
.tool-widget { margin:3rem 0!important; padding:clamp(2rem,5vw,4.5rem)!important; border:0!important; border-radius:0!important; background:var(--bf-paper)!important; box-shadow:none!important; }
.tool-widget h2,.tool-howto h2 { color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(1.7rem,4vw,2.8rem)!important; font-weight:400!important; letter-spacing:-.03em; }
.tool-field label { color:#766a5d!important; font-size:.62rem!important; letter-spacing:.15em!important; }
.tool-field input,.tool-field select { border:1px solid var(--bf-line)!important; border-radius:0!important; background:#fff!important; }
.tool-unit-toggle button { border-radius:0!important; }
.tool-unit-toggle button[aria-pressed=true] { background:var(--bf-ink)!important; }
.tool-result { border-radius:0!important; background:var(--bf-stone)!important; }
.tool-result-value { color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif; }
.tool-chart th { background:var(--bf-ink)!important; color:#fff!important; }
.tool-chart td,.tool-chart th { border-color:var(--bf-line)!important; }

/* Legal */
.content-container { max-width:900px!important; margin:0 auto!important; padding:clamp(5rem,9vw,8rem) 1.5rem clamp(7rem,11vw,11rem)!important; background:transparent!important; }
.content-container>h1 { margin-bottom:.75rem!important; color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(3rem,7vw,5.8rem)!important; font-weight:400!important; letter-spacing:-.05em; line-height:1.05; }
.content-container>h1::after { content:''; display:block; width:46px; height:1px; margin-top:2rem; background:var(--bf-gold); }
.content-container h2 { margin:3.75rem 0 1rem!important; color:var(--bf-ink)!important; font-family:'Libre Baskerville',serif!important; font-size:clamp(1.5rem,3vw,2.15rem)!important; font-weight:400!important; letter-spacing:-.025em; }
.content-container p,.content-container li { color:var(--bf-soft)!important; font-size:.9rem!important; line-height:1.95!important; }
.content-container a { color:#76552b!important; text-underline-offset:4px; }
.List-Container li { margin-bottom:.65rem!important; }

/* Footer */
footer { padding:5rem max(1.25rem,calc((100vw - 1280px)/2 + 5rem)) 2rem!important; background:#171411!important; color:#d8cec1!important; font-family:'Montserrat',sans-serif!important; }
.footerLogoContainer { display:flex!important; justify-content:flex-start!important; width:100%; margin-bottom:3rem!important; }
.footerLogo { width:190px!important; height:auto!important; filter:brightness(0) invert(1); opacity:.9; }
.footer-columns { display:grid!important; grid-template-columns:repeat(2,minmax(180px,1fr))!important; gap:3rem!important; max-width:none!important; padding:0 0 3rem!important; border-bottom:1px solid #39332e!important; }
.footer-col { display:flex!important; flex-direction:column!important; align-items:flex-start!important; gap:.75rem!important; }
.footer-heading { margin-bottom:.6rem!important; color:#9f8d78!important; font-size:.63rem!important; font-weight:600!important; letter-spacing:.2em!important; text-transform:uppercase; }
footer a { display:flex!important; align-items:center!important; gap:.65rem!important; min-height:24px; color:#d8cec1!important; font-size:.76rem!important; text-decoration:none!important; }
footer a:hover { color:#c6a777!important; }
footer a img { border-radius:50%; filter:grayscale(1); opacity:.85; }
.footer-bottom { max-width:none!important; margin:0!important; padding-top:1.75rem; text-align:left!important; }
.footer-bottom p { color:#9a8f83!important; font-size:.65rem!important; letter-spacing:.05em; }
.footer-bottom a { display:inline!important; margin-left:1rem!important; color:#c6a777!important; font-size:.65rem!important; text-decoration:underline!important; }

@media (min-width:1024px) { body>main { padding-top:94px!important; } }
@media (max-width:800px) {
  .about-banner,.blog-banner,.tools-banner,.collection-header,.reviews-header { padding:4.5rem 1.25rem 6rem!important; }
  .about-banner::after,.blog-banner::after,.tools-banner::after,.collection-header::after,.reviews-header::after { right:1.25rem; bottom:1.5rem; }
  .about-section { grid-template-columns:1fr; gap:1.5rem; }
  .about-section h2 { position:static!important; }
  .blog-grid,.reviews-grid,.tools-grid { grid-template-columns:1fr!important; }
  .contact-card { grid-template-columns:1fr!important; }
  .contact-image-panel { min-height:460px; }
  .footer-columns { grid-template-columns:1fr 1fr!important; gap:2rem!important; }
}
@media (max-width:540px) {
  .blog-grid { gap:3.5rem!important; }
  .blog-post-hero { height:115vw!important; }
  .carousel-wrapper { padding:2.5rem .5rem!important; }
  .card-image { aspect-ratio:3/4!important; }
  .contact-page { padding:0!important; }
  .contact-card { min-height:0; }
  .contact-image-panel { min-height:380px; }
  .contact-form-panel { padding:3.5rem 1.25rem!important; }
  .review-card { min-height:0; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important} }
