/* ============================================================
   Cherry Blossom Event Rental — Homepage Theme
   Aesthetic: refined editorial, ivory + blush + ink, sakura accents
   ============================================================ */

:root{
    --cb-ivory:#FBF7F4;
    --cb-cream:#F5EDE6;
    --cb-blush:#F4D4D8;
    --cb-blush-deep:#E89AA4;
    --cb-rose:#C75866;
    --cb-ink:#1F1A1B;
    --cb-ash:#6B5F60;
    --cb-line:rgba(31,26,27,.12);
    --cb-gold:#B89568;
    --cb-display:"Cormorant Garamond", "Playfair Display", Georgia, serif;
    --cb-body:"Outfit", -apple-system, sans-serif;
}

/*Search product catalog*/
#search-btn.tw-text-button-text {color:#fff}
#search-btn.tw-text-button-text:hover {color:#fff}
#loginform button.tw-text-button-text {color:#fff}
#loginform button.tw-text-button-text:hover {color:#fff}

.cb-theme{
    background:var(--cb-ivory);
    color:var(--cb-ink);
    font-family:var(--cb-body);
    -webkit-font-smoothing:antialiased;
}
.cb-theme p{font-family:var(--cb-body);color:var(--cb-ash);line-height:1.7}

/* ===== Shared bits ===== */
.cb-eyebrow{
    display:inline-block;
    font-family:var(--cb-body);
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--cb-rose);
    font-weight:600;
    margin-bottom:18px;
    padding-left:34px;
    position:relative;
}
.cb-eyebrow::before{
    content:"";position:absolute;left:0;top:50%;
    width:24px;height:1px;background:var(--cb-rose);
}
.cb-eyebrow--light{color:#F4D4D8}
.cb-eyebrow--light::before{background:#F4D4D8}

.cb-heading{
    font-family:var(--cb-display);
    font-weight:500;
    font-size:clamp(32px,4.6vw,58px);
    line-height:1.05;
    color:var(--cb-ink);
    letter-spacing:-.01em;
    margin:0 0 18px;
}
.cb-heading em{font-style:italic;color:var(--cb-rose);font-weight:500}
.cb-sub{font-size:17px;max-width:620px}

.cb-section-head{margin-bottom:60px;max-width:780px}
.cb-section-head--center{margin-left:auto;margin-right:auto;text-align:center}
.cb-section-head--center .cb-eyebrow{padding-left:34px;padding-right:34px}
.cb-section-head--center .cb-eyebrow::after{
    content:"";position:absolute;right:0;top:50%;width:24px;height:1px;background:var(--cb-rose);
}
.cb-section-head--center .cb-sub{margin-left:auto;margin-right:auto}

/* ===== Buttons ===== */
.cb-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    font-family:var(--cb-body);font-weight:500;font-size:14px;
    letter-spacing:.08em;text-transform:uppercase;
    padding:18px 34px;border-radius:999px;
    transition:all .35s ease;text-decoration:none;border:1px solid transparent;
}
.cb-btn--primary{background:var(--cb-ink);color:var(--cb-ivory)}
.cb-btn--primary:hover{background:var(--cb-rose);color:#fff;transform:translateY(-2px)}
.cb-btn--ghost{background:transparent;color:var(--cb-ink);border-color:var(--cb-ink)}
.cb-btn--ghost:hover{background:var(--cb-ink);color:var(--cb-ivory)}
.cb-btn--full{width:100%}

/* ============ HERO ============ */
.cb-hero{
    position:relative;overflow:hidden;
    padding:90px 0 110px;
    background:
      radial-gradient(ellipse 80% 60% at 100% 0%, #FBE6E9 0%, transparent 60%),
      radial-gradient(ellipse 60% 50% at 0% 100%, #F5EDE6 0%, transparent 55%),
      var(--cb-ivory);
}
.cb-hero::before{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(rgba(31,26,27,.04) 1px, transparent 1px);
    background-size:22px 22px;pointer-events:none;
}
.cb-hero__inner{position:relative;z-index:2}

.cb-display{
    font-family:var(--cb-display);font-weight:500;
    font-size:clamp(44px,6.2vw,86px);
    line-height:.98;letter-spacing:-.02em;
    margin:14px 0 26px;color:var(--cb-ink);
}
.cb-display em{font-style:italic;color:var(--cb-rose);font-weight:500;position:relative;display:inline-block}
.cb-display em::after{
    content:"";position:absolute;left:0;right:0;bottom:6px;height:8px;
    background:var(--cb-blush);z-index:-1;border-radius:6px;opacity:.65;
}

.cb-lede{font-size:18px;max-width:540px;margin-bottom:34px}

.cb-hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:50px}

.cb-hero__meta{
    list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:30px;
    border-top:1px solid var(--cb-line);padding-top:24px;
}
.cb-hero__meta li{
    font-size:13px;color:var(--cb-ash);letter-spacing:.05em;
    display:flex;flex-direction:column;gap:2px;
}
.cb-hero__meta strong{font-family:var(--cb-display);font-style:italic;font-size:22px;color:var(--cb-rose);font-weight:600}

/* Hero visual */
.cb-hero__visual{position:relative;min-height:520px}
.cb-hero__frame{position:absolute;overflow:hidden;border-radius:300px 300px 12px 12px;box-shadow:0 30px 60px -25px rgba(31,26,27,.35)}
.cb-hero__frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.6s ease}
.cb-hero__frame:hover img{transform:scale(1.05)}
.cb-hero__frame--main{
    width:78%;height:520px;top:0;right:6%;
    border:1px solid var(--cb-line);
}
.cb-hero__frame--accent{
    width:46%;height:240px;bottom:-30px;left:-10px;
    border-radius:12px;border:6px solid var(--cb-ivory);
}
.cb-hero__badge{
    position:absolute;top:30px;left:0;z-index:3;
    width:130px;height:130px;border-radius:50%;
    background:var(--cb-rose);color:#fff;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    font-family:var(--cb-display);font-style:italic;text-align:center;
    box-shadow:0 18px 40px -15px rgba(199,88,102,.6);
    animation:cbSpin 22s linear infinite;
}
.cb-hero__badge span{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-style:normal;font-family:var(--cb-body);opacity:.85}
.cb-hero__badge strong{font-size:26px;font-weight:600;line-height:1.1;margin:4px 0}
@keyframes cbSpin{to{transform:rotate(360deg)}}

/* Petals */
.cb-petal{
    position:absolute;width:24px;height:24px;pointer-events:none;
    background:radial-gradient(circle at 30% 30%, #FBE6E9, var(--cb-blush-deep));
    border-radius:80% 0 80% 0;opacity:.7;
    animation:cbFloat 14s ease-in-out infinite;
}
.cb-petal--1{top:12%;left:8%;animation-delay:-2s}
.cb-petal--2{top:65%;left:42%;width:14px;height:14px;animation-delay:-6s;opacity:.5}
.cb-petal--3{top:28%;right:38%;width:18px;height:18px;animation-delay:-9s;opacity:.6}
.cb-petal--4{top:80%;right:6%;width:20px;height:20px;animation-delay:-4s}
@keyframes cbFloat{
    0%,100%{transform:translateY(0) rotate(0)}
    50%{transform:translateY(-22px) rotate(45deg)}
}

/* ============ GALLERY STRIP ============ */
.cb-gallery-strip{
    overflow:hidden;
    padding:24px 0;
    background:var(--cb-cream);
    border-top:1px solid var(--cb-line);border-bottom:1px solid var(--cb-line);
}
.cb-gallery-strip__row{
    display:flex;gap:18px;
    animation:cbMarquee 38s linear infinite;
    width:max-content;
}
.cb-gallery-strip__row img{
    width:340px;height:230px;object-fit:cover;border-radius:8px;
    flex-shrink:0;filter:saturate(1.05);
}
@keyframes cbMarquee{
    from{transform:translateX(0)}
    to{transform:translateX(-50%)}
}

/* ============ FEATURES ============ */
.cb-features{padding:120px 0;background:var(--cb-ivory)}
.cb-feature-card{
    position:relative;
    padding:42px 36px 50px;
    background:#fff;
    border:1px solid var(--cb-line);
    border-radius:6px;
    height:100%;
    transition:all .4s ease;
    overflow:hidden;
}
.cb-feature-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(31,26,27,.25);border-color:var(--cb-blush-deep)}
.cb-feature-card__num{
    font-family:var(--cb-display);font-style:italic;font-size:48px;
    color:var(--cb-blush);font-weight:500;display:block;margin-bottom:18px;line-height:1;
}
.cb-feature-card h3{
    font-family:var(--cb-display);font-size:28px;font-weight:500;
    color:var(--cb-ink);margin:0 0 14px;letter-spacing:-.01em;
}
.cb-feature-card p{font-size:15px;color:var(--cb-ash);margin:0}
.cb-feature-card__bloom{
    position:absolute;right:-30px;bottom:-30px;width:120px;height:120px;
    background:radial-gradient(circle, var(--cb-blush) 0%, transparent 70%);
    border-radius:50%;opacity:.4;
}

/* ============ AREAS ============ */
.cb-areas{padding:120px 0;background:var(--cb-cream);position:relative}
.cb-areas__grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0}
.cb-areas__grid li{
    padding:32px 28px;
    border-bottom:1px solid var(--cb-line);
    border-right:1px solid var(--cb-line);
}
.cb-areas__grid li:nth-child(2n){border-right:none}
.cb-areas__grid li:nth-last-child(-n+2){border-bottom:none}
.cb-areas__grid h4{
    font-family:var(--cb-display);font-size:26px;font-weight:600;font-style:italic;
    color:var(--cb-rose);margin:0 0 8px;
}
.cb-areas__grid p{font-size:14px;color:var(--cb-ash);margin:0;line-height:1.6}

/* ============ CTA BAND ============ */
.cb-cta-band{padding:50px 0}
.cb-cta-band__inner{
    background:linear-gradient(135deg, var(--cb-ink) 0%, #2c2122 100%);
    border-radius:14px;padding:60px 70px;
    display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;
    position:relative;overflow:hidden;
}
.cb-cta-band__inner::before{
    content:"✿";position:absolute;font-size:380px;color:rgba(244,212,216,.06);
    right:-60px;bottom:-180px;line-height:1;font-family:var(--cb-display);
}
.cb-cta-band__inner h3{
    font-family:var(--cb-display);font-size:clamp(26px,3vw,40px);
    font-weight:500;color:#fff;max-width:580px;margin:14px 0 0;line-height:1.15;
}
.cb-cta-band__inner h3::first-letter{color:var(--cb-blush)}
.cb-cta-band .cb-btn--primary{background:var(--cb-blush);color:var(--cb-ink);position:relative;z-index:2}
.cb-cta-band .cb-btn--primary:hover{background:#fff}

/* ============ SERVICES ============ */
.cb-services{padding:120px 0;background:var(--cb-ivory)}
.cb-services__list{
    list-style:none;padding:0;margin:50px 0 0;
    display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
}
.cb-services__list li{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 26px;
    background:#fff;border:1px solid var(--cb-line);border-radius:999px;
    font-family:var(--cb-display);font-style:italic;font-size:20px;color:var(--cb-ink);
    transition:all .3s ease;
}
.cb-services__list li:hover{background:var(--cb-rose);color:#fff;border-color:var(--cb-rose);transform:translateY(-3px)}
.cb-services__list li span{color:var(--cb-rose);font-size:18px}
.cb-services__list li:hover span{color:var(--cb-blush)}

/* ============ CATEGORIES / FEATURED ============ */
.cb-categories{padding:120px 0;background:var(--cb-cream)}
.cb-featured{padding:120px 0;background:var(--cb-ivory)}

/* ============ HOURS ============ */
.cb-hours{padding:60px 0 120px;background:var(--cb-ivory)}
.cb-hours__card{
    background:linear-gradient(160deg, #2a1f20 0%, var(--cb-ink) 100%);
    border-radius:18px;padding:70px 60px;
    position:relative;overflow:hidden;
}
.cb-hours__card::after{
    content:"";position:absolute;top:-100px;right:-100px;width:300px;height:300px;
    background:radial-gradient(circle, rgba(244,212,216,.18), transparent 70%);
    border-radius:50%;
}
.cb-hours__head{text-align:center;margin-bottom:40px;position:relative;z-index:2}
.cb-hours__head h2{
    font-family:var(--cb-display);font-size:48px;font-weight:500;color:#fff;margin:10px 0 0;
}
.cb-hours ul{list-style:none;padding:0;margin:0;max-width:640px;margin-left:auto;margin-right:auto;position:relative;z-index:2}
.cb-hours li{
    display:flex;align-items:baseline;gap:14px;
    padding:18px 0;border-bottom:1px dashed rgba(255,255,255,.15);
}
.cb-hours__day{font-family:var(--cb-display);font-style:italic;font-size:22px;color:var(--cb-blush);min-width:160px}
.cb-hours__dots{flex:1;border-bottom:1px dotted rgba(255,255,255,.25);transform:translateY(-4px)}
.cb-hours__time{font-family:var(--cb-body);font-size:15px;color:#fff;letter-spacing:.04em}

/* ============ TESTIMONIALS ============ */
.cb-testimonials{padding:120px 0;background:var(--cb-cream)}
.cb-testimonials .carousel-inner{padding:30px 60px}
.cb-stars{color:var(--cb-rose);font-size:22px;letter-spacing:6px;margin-bottom:24px}
.cb-testimonials blockquote{
    font-family:var(--cb-display);font-style:italic;
    font-size:clamp(22px,2.4vw,32px);
    line-height:1.4;color:var(--cb-ink);max-width:820px;margin:0 auto 24px;
}
.cb-testimonials cite{
    font-family:var(--cb-body);font-style:normal;font-size:13px;
    letter-spacing:.18em;text-transform:uppercase;color:var(--cb-rose);
}
.cb-testimonials .carousel-control-prev,
.cb-testimonials .carousel-control-next{width:50px;opacity:.6;filter:invert(1) grayscale(1)}
.cb-testimonials .carousel-control-prev:hover,
.cb-testimonials .carousel-control-next:hover{opacity:1}

/* ============ SEO LONG-FORM ============ */
.cb-seo{padding:120px 0;background:var(--cb-ivory);border-top:1px solid var(--cb-line)}
.cb-seo p{font-size:16px;color:var(--cb-ash);margin-bottom:18px}
.cb-seo strong{color:var(--cb-ink)}
.cb-seo__aside{
    background:var(--cb-cream);border:1px solid var(--cb-line);border-radius:10px;
    padding:42px 36px;
}
.cb-seo__aside h3{
    font-family:var(--cb-display);font-size:26px;font-weight:600;font-style:italic;
    color:var(--cb-rose);margin:0 0 22px;
}
.cb-seo__aside ul{list-style:none;padding:0;margin:0 0 28px}
.cb-seo__aside li{
    padding:12px 0 12px 28px;position:relative;font-size:15px;color:var(--cb-ink);
    border-bottom:1px solid var(--cb-line);
}
.cb-seo__aside li:last-child{border-bottom:none}
.cb-seo__aside li::before{
    content:"✿";position:absolute;left:0;color:var(--cb-rose);font-size:14px;top:14px;
}

.cb-content-block{padding:80px 0;background:var(--cb-cream)}
.cb-prose{max-width:780px;margin:0 auto}

/* ============ Responsive ============ */
@media (max-width: 991px){
    .cb-hero{padding:60px 0 80px}
    .cb-hero__visual{min-height:auto;margin-top:50px}
    .cb-hero__frame--main{position:relative;width:100%;height:380px;right:0}
    .cb-hero__frame--accent{display:none}
    .cb-hero__badge{top:20px;right:20px;left:auto;width:100px;height:100px}
    .cb-features,.cb-areas,.cb-services,.cb-categories,.cb-featured,.cb-testimonials,.cb-seo{padding:70px 0}
    .cb-cta-band__inner{padding:40px 30px}
    .cb-hours__card{padding:50px 28px}
    .cb-areas__grid{grid-template-columns:1fr}
    .cb-areas__grid li{border-right:none}
    .cb-areas__grid li:nth-last-child(2){border-bottom:1px solid var(--cb-line)}
    .cb-hours__day{min-width:120px;font-size:18px}
}
@media (max-width: 575px){
    .cb-display{font-size:42px}
    .cb-heading{font-size:32px}
    .cb-hero__meta{gap:18px}
    .cb-gallery-strip__row img{width:220px;height:160px}
    .cb-cta-band__inner{flex-direction:column;align-items:flex-start}
}
