/* An isolated spring editorial, using the existing Rochford campaign typefaces. */
.blossom { --blossom-hero-gutter:clamp(28px,4.6vw,76px); --blossom-paper:#faf7f1; --blossom-ink:#35362b; --blossom-cherry:#76364a; --blossom-line:#ded8cd; background:var(--blossom-paper); color:var(--blossom-ink); font-family:"Suisse Intl",Arial,sans-serif; font-size:16px; line-height:1.7; }
.blossom *, .blossom *::before, .blossom *::after { box-sizing:border-box; }
.blossom h1,.blossom h2,.blossom h3 { color:inherit; font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; letter-spacing:-.035em; line-height:1.05; margin:0; text-wrap:balance; }
.blossom h1 { font-size:clamp(52px,5.05vw,78px); }
.blossom h2 { font-size:clamp(40px,3.8vw,58px); }
.blossom h3 { font-size:clamp(30px,2.7vw,40px); }
.blossom p { margin:0 0 22px; }
.blossom a { color:var(--blossom-cherry); text-decoration:none; }
.blossom a:not(.blossom-button) { position:relative; }
.blossom a:not(.blossom-button)::after { content:""; position:absolute; inset:auto 0 -2px; height:1px; background:currentColor; opacity:.55; transition:opacity .18s; }
.blossom a:not(.blossom-button):hover::after { opacity:1; }
.blossom .rce-breadcrumb a::after { content:none; }
.blossom a.blossom-text-link::after { bottom:calc(50% - .65em); }
.blossom-faq details a { display:inline-block; }
.blossom a:focus-visible,.blossom button:focus-visible,.blossom summary:focus-visible { outline:3px solid #9e6a32; outline-offset:5px; }
.blossom [hidden] { display:none!important; }
.blossom section[id] { scroll-margin-top:110px; }
.blossom .blossom-eyebrow,.blossom-number { color:var(--blossom-cherry); font-size:11px; font-weight:600; letter-spacing:.16em; line-height:1.6; text-transform:uppercase; }
.blossom .blossom-eyebrow { margin-bottom:20px; }
.blossom .blossom-small { font-size:13px; line-height:1.65; }
.blossom .blossom-button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:52px; padding:16px 24px; border:1px solid var(--blossom-cherry); border-radius:0; background:var(--blossom-cherry); color:white; font-size:12px; font-weight:600; letter-spacing:.07em; line-height:1.5; text-transform:uppercase; text-decoration:none; transition:background .2s,color .2s; }
.blossom .blossom-button:hover { background:#592437; color:#fff; }
.blossom .blossom-button--outline { background:transparent; color:var(--blossom-cherry); }
.blossom .blossom-button--outline:hover { background:var(--blossom-cherry); color:white; }
.blossom .blossom-text-link { display:inline-flex; align-items:center; gap:20px; min-height:44px; font-size:14px; font-weight:500; }
.blossom-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 26px; }
.blossom .rce-breadcrumb { background:var(--blossom-paper); border-bottom:1px solid var(--blossom-line); }
.blossom .rce-breadcrumb__inner { max-width:none; padding-left:var(--blossom-hero-gutter); padding-right:var(--blossom-hero-gutter); }
.blossom-hero { display:grid; grid-template-columns:48% 52%; min-height:660px; border-bottom:5px solid var(--blossom-cherry); }
.blossom-hero__copy { align-self:center; padding:64px clamp(28px,4.6vw,76px); padding-left:var(--blossom-hero-gutter); }
.blossom-hero__copy h1 { max-width:620px; margin-bottom:28px; }
.blossom-lede { max-width:460px; color:#595b50; }
.blossom-hero__copy .blossom-actions { margin:28px 0; }
.blossom .blossom-hero__date { margin:0; color:#696858; }
.blossom-hero__media { position:relative; min-width:0; }
.blossom picture { display:block; height:100%; }
.blossom picture img { display:block; width:100%; height:100%; object-fit:cover; }
.blossom-hero__media picture { position:absolute; inset:0; }
.blossom-hero__media img { object-position:53% center; }
.blossom-caption { position:absolute; bottom:20px; right:20px; color:#fff; font-size:11px; letter-spacing:.08em; padding:6px 11px; background:#2d322b9e; }
.blossom-section { max-width:1280px; margin:0 auto; padding:90px 40px; }
.blossom-section-heading { text-align:center; max-width:720px; margin:0 auto 48px; }
.blossom-section-heading h2 { margin-bottom:24px; }
.blossom-section-heading > div { color:#595b50; }
.blossom-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--blossom-line); }
.blossom-choice-grid article { padding:36px 48px 0; }
.blossom-choice-grid article + article { border-left:1px solid var(--blossom-line); }
.blossom-number { display:block; margin-bottom:20px; }
.blossom-choice-grid h3 { margin-bottom:18px; }
.blossom-choice-grid p { max-width:450px; }
.blossom-choice-grid .blossom-small { min-height:44px; color:#696858; }
.blossom-package { display:grid; grid-template-columns:42% 58%; background:#efe9df; }
.blossom-package__media { position:relative; }
.blossom-package__media picture { position:absolute; inset:0; }
.blossom-package__copy { padding:64px clamp(30px,5vw,80px); }
.blossom-package__copy h2 { max-width:500px; margin-bottom:24px; }
.blossom-package__date { font-size:13px; font-weight:500; color:var(--blossom-cherry); max-width:500px; }
.blossom-prices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid #d3cabc; border-bottom:1px solid #d3cabc; margin:28px 0; padding:22px 0; }
.blossom-prices > div { display:flex; flex-direction:column; gap:2px; padding-right:16px; }
.blossom-prices > div + div { padding-left:24px; border-left:1px solid #d3cabc; }
.blossom-prices strong { font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; font-size:48px; line-height:1.1; }
.blossom-prices span { font-size:12px; }
.blossom-prices small { color:#696858; font-size:11px; }
.blossom-body { font-size:15px; }
.blossom-body ul { padding:0 0 0 20px; margin:24px 0; }
.blossom-body li { padding-left:5px; margin-bottom:9px; }
.blossom-body li::marker { color:var(--blossom-cherry); }
.blossom-note { border-left:2px solid #9e6a32; padding-left:18px; font-size:14px; font-weight:500; }
.blossom .blossom-package__terms { max-width:450px; margin:18px 0 0; color:#666557; }
.blossom .blossom-menu { margin:18px 0 0; font-size:13px; }
.blossom-restaurant-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.blossom-restaurant-grid article { min-width:0; display:flex; flex-direction:column; }
.blossom-restaurant__image { aspect-ratio:4/3; overflow:hidden; }
.blossom-restaurant__image img { object-position:center; }
.blossom-restaurant__copy { padding:30px 0 0; display:flex; flex:1; flex-direction:column; align-items:flex-start; }
.blossom-restaurant__copy h3 { margin-bottom:22px; }
.blossom-restaurant__copy .blossom-eyebrow { margin-bottom:12px; }
.blossom-restaurant__copy > div { color:#595b50; }
.blossom-restaurant__copy .blossom-small { color:#696858; margin-top:auto; }
.blossom-booking { margin-top:64px; border:1px solid #ddc8cd; border-top:4px solid var(--blossom-cherry); background:#f0e7e5; padding:36px; box-shadow:0 16px 42px #49302b08; }
.blossom-booking__intro { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:28px; }
.blossom-booking__intro > p { margin:0; font-size:14px; color:#595b50; }
.blossom-booking__intro h3 { font-size:38px; }
.blossom-booking__intro .blossom-eyebrow { margin-bottom:12px; }
.blossom-booking-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--blossom-line); margin-bottom:20px; padding:0 6px 12px; font-size:12px; }
.blossom-booking-toolbar p { margin:0; color:#666557; }
.blossom-booking-toolbar p > span { color:#b28d97; padding:0 8px; }
.blossom .blossom-booking-toolbar a { font-size:12px; flex-shrink:0; gap:12px; }
.blossom-booking > h3 { margin-bottom:18px; }
.blossom-booking > p { max-width:700px; }
.blossom-tabs { display:flex; gap:10px; margin:0; border-bottom:0; }
.blossom .blossom-tabs button { background:transparent; color:var(--blossom-cherry); border:1px solid #c9b4b9; border-bottom:0; border-radius:0; font:inherit; font-size:15px; min-height:52px; padding:14px 24px; }
.blossom .blossom-tabs button[aria-selected="true"] { background:var(--blossom-cherry); color:white; border-color:var(--blossom-cherry); }
.blossom-booking-panel { background:white; padding:20px; border:1px solid #ddc8cd; }

.blossom-booking-frame { border:0; display:block; width:100%; height:790px; background:#fff; }
.blossom-cocktails { display:grid; grid-template-columns:1fr 1fr; background:#efe0e0; }
.blossom-cocktails__copy { align-self:center; padding:64px clamp(28px,6vw,100px); }
.blossom-cocktails h2 { margin-bottom:26px; }
.blossom-cocktails .blossom-small { margin-bottom:0; }
.blossom-cocktails__image { min-height:480px; position:relative; }
.blossom-cocktails__image picture { position:absolute; inset:0; }
.blossom-visit { display:grid; grid-template-columns:1fr 1fr; gap:80px; border-bottom:1px solid var(--blossom-line); }
.blossom-visit h2 { margin-bottom:24px; }
.blossom-visit header > div { color:#595b50; }
.blossom-addresses { align-self:center; }
.blossom-addresses .blossom-text-link { margin-bottom:20px; }
.blossom-addresses > div + div { border-top:1px solid var(--blossom-line); padding-top:24px; }
.blossom-addresses h3 { font-size:30px; margin-bottom:12px; }
.blossom-addresses p { font-size:14px; }
.blossom-faq { display:grid; grid-template-columns:1fr 1.4fr; gap:80px; }
.blossom-faq__image { margin:32px 0 0; }
.blossom-faq__image picture { height:280px; overflow:hidden; }
.blossom-faq__image img { object-position:center 62%; }
.blossom-faq__image figcaption { padding-top:14px; color:var(--blossom-cherry); font-family:"Cormorant Garamond",Georgia,serif; font-size:24px; line-height:1.25; }
.blossom-faq details { border-bottom:1px solid var(--blossom-line); }
.blossom-faq summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 0; font-size:16px; font-weight:500; }
.blossom-faq summary::-webkit-details-marker { display:none; }
.blossom-faq summary::after { content:'+'; font-size:24px; font-weight:400; color:var(--blossom-cherry); }
.blossom-faq details[open] summary::after { content:'−'; }
.blossom-faq details > div { font-size:14px; color:#595b50; padding-right:24px; }
.blossom-closing { display:grid; grid-template-columns:40% 60%; background:#e4e6d9; }
.blossom-closing__image { position:relative; min-height:430px; }
.blossom-closing__image picture { position:absolute; inset:0; }
.blossom-closing__copy { padding:64px clamp(28px,5vw,80px); align-self:center; }
.blossom-closing__copy > .blossom-actions { margin-top:32px; }
.blossom-closing h2 { margin-bottom:24px; max-width:580px; }
.blossom-closing .blossom-small { margin:24px 0 0; max-width:520px; }
@media (min-width:1600px) { .blossom { --blossom-hero-gutter:max(76px,calc((100vw - 1440px)/2)); } }
@media (max-width:1024px) { .blossom { --blossom-hero-gutter:30px; }.blossom-hero { min-height:620px; }.blossom-hero__copy { padding:48px 30px; }.blossom-section { padding:64px 30px; }.blossom-choice-grid article { padding:30px 25px 0; }.blossom-package__copy { padding:48px 30px; }.blossom-visit,.blossom-faq { gap:40px; }.blossom-restaurant-grid { gap:28px; } }
@media (max-width:767px) { .blossom { --blossom-hero-gutter:24px; }.blossom .rce-breadcrumb__inner { padding:12px 24px; font-size:12px; }.blossom-hero { display:flex; flex-direction:column; }.blossom-hero__copy { padding:42px 24px 36px; }.blossom h1 { font-size:clamp(45px,10.6vw,68px); }.blossom h2 { font-size:42px; }.blossom-hero__media { aspect-ratio:4/3; }.blossom-hero__media img { object-position:center 62%; }.blossom-caption { font-size:10px; bottom:14px; right:14px; }.blossom-section { padding:56px 24px; }.blossom-section-heading { margin-bottom:30px; text-align:left; }.blossom .blossom-eyebrow { font-size:10px; }.blossom-choice-grid { display:block; }.blossom-choice-grid article { padding:28px 0; }.blossom-choice-grid article + article { border-left:0; border-top:1px solid var(--blossom-line); padding-bottom:0; }.blossom-choice-grid .blossom-small { min-height:0; }.blossom-package { display:flex; flex-direction:column; }.blossom-package__media { aspect-ratio:4/3; }.blossom-package__copy { padding:40px 24px; }.blossom-prices strong { font-size:43px; }.blossom-prices > div + div { padding-left:18px; }.blossom-restaurant-grid { grid-template-columns:1fr; gap:42px; }.blossom-restaurant__copy { padding-top:24px; }.blossom-booking { margin:42px -10px 0; padding:24px 12px 12px; }.blossom-booking__intro { grid-template-columns:1fr; gap:18px; padding:0 6px; }.blossom-booking__intro h3 { font-size:34px; }.blossom-booking-toolbar { align-items:flex-start; flex-direction:column; gap:4px; padding:0 12px 12px; }.blossom .blossom-booking-toolbar a { min-height:38px; }.blossom-faq__image { display:none; }.blossom-tabs { gap:6px; }.blossom .blossom-tabs button { flex:1; padding:12px 10px; font-size:13px; }.blossom-booking-panel { padding:16px 0 0; }.blossom-booking-frame { height:900px; }.blossom-cocktails { display:flex; flex-direction:column; }.blossom-cocktails__copy { padding:44px 24px; }.blossom-cocktails__image { min-height:0; aspect-ratio:4/3; }.blossom-cocktails__image img { object-position:center 55%; }.blossom-visit,.blossom-faq { grid-template-columns:1fr; gap:28px; }.blossom-faq details > div { padding-right:0; }.blossom-closing { display:flex; flex-direction:column; }.blossom-closing__image { min-height:0; aspect-ratio:2/1; }.blossom-closing__copy { padding:44px 24px; }.blossom-actions { gap:12px 24px; }.blossom .blossom-button { padding:14px 18px; font-size:11px; gap:15px; max-width:100%; }.blossom-hero__copy .blossom-actions { align-items:flex-start; flex-direction:column; }.blossom h3 { font-size:34px; } }
@media (prefers-reduced-motion:reduce) { .blossom .blossom-button { transition:none; } }

/* Match shared event quick actions while keeping this campaign's accent colour. */
.blossom-sticky { --rce-olive:#76364a; --rce-olive-dark:#592437; --rce-gold:#76364a; visibility:hidden; }
.blossom-sticky.is-visible { visibility:visible; }
.blossom-sticky .rce-sticky__link--secondary:hover { color:#fff!important; }
@media (min-width:768px) and (max-width:1024px) { .blossom-booking { padding:26px; }.blossom-booking__intro { grid-template-columns:1fr; gap:18px; }.blossom-booking-toolbar { align-items:flex-start; flex-direction:column; gap:4px; }.blossom-faq__image picture { height:220px; } }

/* Decorative spring artwork stays behind content and out of the reading order. */
.blossom-choices,.blossom-visit,.blossom-booking { position:relative; isolation:isolate; }
.blossom-choices::before,.blossom-visit::before,.blossom-booking::before { content:""; position:absolute; z-index:-1; pointer-events:none; background:url('../images/cherry-blossom/spring-botanical.webp') top right / contain no-repeat; }
.blossom-choices::before { top:0; right:0; width:440px; height:440px; opacity:.22; }
.blossom-visit::before { bottom:0; left:0; width:420px; height:420px; transform:rotate(180deg); opacity:.18; }
.blossom-booking::before { top:0; right:0; width:300px; height:300px; opacity:.2; }
.blossom-package__intro { max-width:580px; color:#595b50; font-size:16px; }
.blossom-package__copy > .blossom-note { margin:24px 0; }
.blossom-package-details { border-top:1px solid #d3cabc; border-bottom:1px solid #d3cabc; }
.blossom-package-details summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 0; color:var(--blossom-cherry); font-size:14px; font-weight:500; list-style:none; cursor:pointer; }
.blossom-package-details summary::-webkit-details-marker { display:none; }
.blossom-package-details summary::after { content:'+'; font-size:24px; font-weight:400; }
.blossom-package-details[open] summary::after { content:'−'; }
.blossom-package-details .blossom-body ul { margin-top:0; }
@media (max-width:767px) { .blossom-choices::before { width:260px; height:260px; opacity:.16; }.blossom-visit::before { width:250px; height:250px; opacity:.14; }.blossom-booking::before { width:210px; height:210px; opacity:.16; } }

/* Final details: close-set rules, mobile fallback action and an editorial planning card. */
.blossom .blossom-menu a,.blossom-faq details a { display:inline-block; line-height:1.4; }
.blossom .blossom-menu a::after,.blossom-faq details a::after { bottom:1px; }
.blossom-faq__image { position:relative; margin-top:48px; padding:10px; background:#fffdf8; border:1px solid #e6ded2; box-shadow:0 12px 28px #49302b0a; }
.blossom-faq__image picture { height:auto; aspect-ratio:4/3; }
.blossom-faq__image picture img { object-position:center 66%; }

.blossom-faq__image figcaption { display:flex; flex-direction:column; gap:10px; padding:22px 14px 18px; font-size:30px; line-height:1.08; }
.blossom-faq__caption-label { display:flex; align-items:center; gap:12px; font-family:"Suisse Intl",Arial,sans-serif; font-size:9px; font-weight:500; line-height:1.5; letter-spacing:.14em; text-transform:uppercase; }
.blossom-faq__caption-label::before { content:""; height:1px; width:28px; background:currentColor; }
.blossom-faq__image figcaption em { font-weight:400; }
.blossom-faq summary::after { content:'+'; transition:transform .24s ease; }
.blossom-faq details[open] summary::after { content:'+'; transform:rotate(45deg); }
.blossom-faq details.is-closing summary::after { transform:rotate(0); }
.blossom-faq details.is-animating { overflow:hidden; }
@media (min-width:768px) and (max-width:1024px) { .blossom-faq__image picture { height:auto; } }
@media (max-width:767px) {
 .blossom-booking-toolbar { padding:0 12px 16px; margin-bottom:16px; }
 .blossom-booking-toolbar > p { display:none; }
 .blossom .blossom-booking-toolbar a { width:100%; min-height:44px; justify-content:space-between; padding:10px 12px; border:1px solid #c9b4b9; font-size:11px; line-height:1.4; gap:10px; }
 .blossom .blossom-booking-toolbar a::after { content:none; }
 .blossom .blossom-booking-toolbar a:hover { background:#faf7f1; }
 .blossom-faq__image { display:block; max-width:420px; margin-top:40px; margin-right:12px; }
 .blossom-faq__image picture { aspect-ratio:3/2; }

 .blossom-faq__image figcaption { font-size:28px; padding:18px 12px 14px; }
}
@media (prefers-reduced-motion:reduce) { .blossom-faq summary::after { transition:none; } }

/* Give the editable inclusions a structured, softly framed presentation. */

.blossom-package-details { background:#f8f3eb; border:1px solid #d3cabc; }
.blossom-package-details summary { padding:17px 20px; }
.blossom-package-details summary::after { content:'+'; transition:transform .24s ease; }
.blossom-package-details[open] summary::after { content:'+'; transform:rotate(45deg); }
.blossom-package-details.is-closing summary::after { transform:rotate(0); }
.blossom-package-details.is-animating { overflow:hidden; }
.blossom-package-details .blossom-body { padding:0 20px 20px; }
.blossom-package-details .blossom-body ul { list-style:none; padding:0; margin:0; counter-reset:blossom-inclusion; }
.blossom-package-details .blossom-body li { display:grid; grid-template-columns:24px 1fr; column-gap:12px; padding:14px 0; margin:0; border-top:1px solid #e1d8ca; line-height:1.6; counter-increment:blossom-inclusion; }
.blossom-package-details .blossom-body li::before { content:counter(blossom-inclusion,decimal-leading-zero); color:var(--blossom-cherry); font-size:11px; font-weight:600; line-height:2.2; letter-spacing:.05em; }
@media (max-width:767px) { .blossom-faq__image { margin-right:20px; }.blossom-package-details summary { padding:15px 14px; }.blossom-package-details .blossom-body { padding:0 14px 16px; }.blossom-package-details .blossom-body li { column-gap:8px; font-size:14px; } }
@media (prefers-reduced-motion:reduce) { .blossom-package-details summary::after { transition:none; } }

/* A decorative postage stamp, based on the section design concept. */
.blossom-faq__paper { display:flex; flex-direction:column; align-items:center; justify-content:center; position:absolute; z-index:2; isolation:isolate; top:-32px; right:-18px; width:154px; aspect-ratio:5/6; padding:13px; transform:rotate(8deg); filter:drop-shadow(0 4px 6px #49302b1a); pointer-events:none; }
.blossom-faq__paper::before { content:""; position:absolute; z-index:-1; inset:0; background:url('../images/cherry-blossom/postage-frame.svg') center / 100% 100% no-repeat; }
.blossom .blossom-faq__paper .blossom-faq__illustration { display:block; position:relative; inset:auto; width:100%!important; height:auto!important; transform:none; filter:none; }
.blossom-faq__stamp-label { display:block; margin-top:5px; color:var(--blossom-cherry); font-size:8px; font-weight:500; line-height:1.2; letter-spacing:.19em; text-align:center; text-transform:uppercase; }
@media (min-width:768px) and (max-width:1024px) { .blossom-faq__paper { width:124px; padding:11px; top:-26px; right:-12px; }.blossom-faq__stamp-label { font-size:7px; } }
@media (max-width:767px) { .blossom-faq__paper { width:112px; padding:10px; top:-22px; right:-10px; }.blossom-faq__stamp-label { font-size:6.5px; margin-top:3px; } }
