/* Shared inner-page layouts and controls. */
:root { --space-1:4px; --space-2:8px; --space-3:16px; --space-4:24px; --space-5:40px; --space-6:72px; }
[hidden] { display:none !important; }
.section-dark { background-color:var(--color-navy); }
/* Light cards keep their own readable palette inside dark sections. */
.section-dark :is(.package-card, .shop-card, .team-card, .pricing-card, .content-card, .product-card, .article-card) { color:var(--color-text); }
.section-dark :is(.package-card, .shop-card, .team-card, .pricing-card, .content-card, .product-card, .article-card) :is(h2,h3,h4,h5,h6) { color:var(--color-text-strong); }
/* Shared cards use the same restrained treatment as checkout and contact. */
:is(.service-card,.package-card,.shop-card,.team-card,.pricing-card) { border-color:#e0e5eb; border-radius:14px; box-shadow:0 8px 28px rgb(18 24 31 / .045); }
:is(.service-card,.package-card,.shop-card,.team-card,.pricing-card):hover { border-color:#c9d2dd; box-shadow:0 14px 36px rgb(18 24 31 / .08); transform:translateY(-3px); }
.package-card, .shop-card { display:flex; flex-direction:column; }
.package-card > div, .shop-card > div { flex:1; display:flex; flex-direction:column; align-items:flex-start; padding:26px; }
.package-card > div > :is(.button,.text-link), .shop-card > div > :is(.button,.text-link) { margin-top:auto; }
.package-card h3, .shop-card h3, .team-card h3 { font-size:25px; text-transform:none; line-height:1.3; }
.shop-card h3 a { color:var(--color-text-strong); }
.shop-card h3 a:hover { color:#a44228; }
.package-card > div > p:not(.eyebrow), .shop-card > div > p:not(.price), .team-card-body > p { font-size:13px; line-height:1.85; color:#667181; }
.package-card .eyebrow, .team-card .eyebrow { font-size:10px; letter-spacing:.12em; color:#a44228; }
.package-card .button, .shop-card .button, .pricing-card .button { display:inline-flex; align-items:center; min-height:44px; padding:12px 20px; background:#343a48; color:white; font-size:12px; text-transform:none; }
.package-card .button:hover, .shop-card .button:hover, .pricing-card .button:hover { background:#202631; }
.shop-card .price { color:#a44228; font-size:30px; }
.service-card { display:flex; flex-direction:column; align-items:flex-start; text-align:left; padding:30px; }
.service-card > i { width:48px; height:48px; border-radius:13px; margin:0 0 22px; background:#fff0e9; color:#a44228; font-size:20px; }
.service-card h3 { font-size:25px; text-transform:none; margin-bottom:12px; }
.service-card > p { font-size:13px; line-height:1.85; }
.service-card > a { margin-top:auto; padding-top:10px; font-size:12px; font-weight:700; color:#a44228; }
.section-dark .service-card { background:#414957; border:1px solid rgb(255 255 255 / .14); box-shadow:none; }
.section-dark .service-card > p { color:#d2d8e2; }
.section-dark .service-card > i { background:rgb(255 174 148 / .12); color:#ffae94; }
.section-dark .service-card > a { color:#ffb49e; }
.pricing-card { display:flex; flex-direction:column; align-items:center; padding:32px; text-align:left; }
.pricing-card > h3 { font-size:28px; text-transform:none; }
.pricing-card > i { width:48px; height:48px; border-radius:13px; background:#fff0e9; color:#a44228; font-size:21px; }
.pricing-card > .price { margin:18px 0; font-size:44px; color:#a44228; }
.pricing-card > .plan-feature-list { width:100%; margin:10px 0 28px; font-size:13px; }
.pricing-card > .button { margin-top:auto; width:100%; justify-content:center; }
.pricing-card.is-featured { border:2px solid #e2a08a; box-shadow:0 12px 32px rgb(164 66 40 / .08); }
.pricing-card.is-featured > .button { color:#202631; background:#ff997a; }
.team-card-body { padding:26px; gap:0; }
.team-card-body .social-list { margin-top:20px; gap:8px; justify-content:flex-start; }
.team-card-body .social-link { width:32px; height:32px; font-size:12px; }
.contact-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.contact-grid .content-card { height:100%; border-radius:14px; padding:30px; box-shadow:0 8px 28px rgb(18 24 31 / .045); }
.contact-grid .content-card > i { display:grid; place-items:center; width:46px; height:46px; background:#fff0e9; color:#a44228; border-radius:12px; margin-bottom:22px; font-size:19px; }
.contact-grid .content-card h3 { text-transform:none; font-size:25px; }
.contact-grid .content-card p { font-size:13px; line-height:1.9; margin-bottom:0; overflow-wrap:anywhere; }
.contact-grid .content-card a { color:#a44228; }
#event-brief .long-form { padding:32px; background:white; color:#475160; border-radius:16px; }
#event-brief .long-form label { font-size:12px; font-weight:600; }
#event-brief .long-form :is(input,textarea,select) { border-radius:7px; border-color:#dce1e7; background:#f8f9fb; font-weight:400; }
#event-brief .long-form .button { justify-self:stretch; width:100%; background:#ff997a; color:#202631; border-radius:7px; text-transform:none; }
#event-brief .form-status { color:#687282; font-size:12px; font-weight:400; }
.filter-bar { gap:8px; }
.filter-bar button { padding:10px 20px; border:1px solid #dce1e7; border-radius:24px; font-size:11px; }
.filter-bar button.is-active { background:#343a48; border-color:#343a48; color:white; }
.gallery .filter-bar button, .section-dark .filter-bar button { border-color:rgb(255 255 255 / .2); }
.gallery .filter-bar button.is-active, .section-dark .filter-bar button.is-active { background:#ff997a; border-color:#ff997a; color:#202631; }
.gallery-grid:not(.portfolio-grid) { gap:14px; }
.gallery-item { border-radius:10px; }
.gallery-item:focus-within button, .gallery-item:hover button { transform:none; }
.parallax { background-color:var(--color-navy-deep); }
.section-dark .stacked-form input:not([type=checkbox]):not([type=radio]), .section-dark .stacked-form textarea { background:white; }
.skip-link { position:fixed; z-index:10000; left:16px; top:12px; padding:12px 20px; background:white; color:#242a34; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.skip-link:not(:focus) { width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
:focus-visible { outline:3px solid #009bed; outline-offset:4px; }
select { font:inherit; max-width:100%; }
.stacked-form select, .shop-toolbar select, .coupon-form input { width:100%; padding:12px; border:1px solid var(--color-border); border-radius:var(--radius); background:white; color:var(--color-text); }
.stacked-form input[type=checkbox], .stacked-form input[type=radio] { width:18px; height:18px; min-height:18px; padding:0; margin:0 8px 0 0; accent-color:var(--color-red); vertical-align:middle; }
.stacked-form label { display:grid; gap:8px; }
.stacked-form .checkbox-row, .stacked-form .radio-row, .shop-filter label { display:block; }
.form-row, .cart-summary-grid, .product-detail, .project-detail { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; align-items:start; }
.long-form { max-width:780px; margin:auto; }
.form-status { margin:12px 0 0; font-size:14px; line-height:1.6; }
.form-status:empty { display:none; }
.button-outline, .button-ghost { background:transparent; color:var(--color-text-strong); border:1px solid var(--color-border); }
button:disabled { opacity:.5; cursor:not-allowed; }
.shop-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:36px; align-items:start; }
.shop-filter, .project-meta { padding:26px; background:var(--color-bg-soft-2); border:1px solid var(--color-border); border-radius:var(--radius-lg); }
.shop-filter h3 { margin-bottom:20px; }
.shop-filter fieldset { margin:0; padding:16px 0; border:0; border-top:1px solid var(--color-border); }
.shop-filter legend { font-weight:700; }
.shop-filter label { margin:8px 0; }
.shop-toolbar, .cart-actions, .btn-row, .tag-row { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-bottom:24px; }
.shop-toolbar p { margin:0 auto 0 0; }
.shop-toolbar label { display:flex; align-items:center; gap:10px; }
.shop-layout .shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.product-info h2 { font-size:42px; margin:12px 0 24px; }
.product-main { width:100%; aspect-ratio:1; object-fit:cover; border-radius:var(--radius-lg); }
.product-thumbs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:16px; }
.product-thumbs button { padding:4px; background:white; border:2px solid transparent; border-radius:var(--radius); }
.product-thumbs .is-active { border-color:var(--color-red); }
.product-thumbs img { width:100%; aspect-ratio:1; object-fit:cover; }
.cart-table-wrap { overflow-x:auto; }
.cart-table, .data-table { width:100%; border-collapse:collapse; text-align:left; margin-bottom:24px; }
.cart-table { min-width:630px; }
.cart-table th, .cart-table td, .data-table th, .data-table td { padding:16px; border-bottom:1px solid var(--color-border); }
.cart-table th, .data-table th { background:var(--color-bg-soft); color:var(--color-text-strong); }
.cart-product { display:flex; gap:18px; align-items:center; }
.cart-product img { flex-shrink:0; object-fit:cover; border-radius:var(--radius); }
.cart-product p { margin:4px 0 0; }
.cart-table input { width:76px; padding:10px; border:1px solid var(--color-border); border-radius:var(--radius); }
.cart-actions { justify-content:space-between; }
.cart-summary-grid .content-card, .order-summary { background:white; color:var(--color-text); }
.section-dark .cart-summary-grid h3 { color:var(--color-text-strong); }
.coupon-form { display:flex; flex-wrap:wrap; gap:12px; }
.coupon-form input { flex:1 1 150px; width:150px; }
.coupon-form .form-status { flex-basis:100%; }
.totals-list { list-style:none; margin:20px 0; padding:0; }
.totals-list li, .order-summary .link-list li { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid var(--color-border); }
.totals-line { font-size:18px; }
.checkout-form h3 { margin:14px 0; }
.site-footer {
  --footer-muted:#b6becb;
  --footer-line:rgb(255 255 255 / .13);
  background:radial-gradient(ellipse at 100% 0%, rgb(255 100 62 / .09), transparent 55%), #1d2430;
  color:var(--footer-muted);
  padding:0;
}
.footer-invitation { display:grid; grid-template-columns:1fr 1.05fr; align-items:start; gap:72px; padding:72px 0 58px; border-bottom:1px solid var(--footer-line); }
.footer-invitation-copy { max-width:630px; }
.site-footer .footer-eyebrow { margin:0 0 20px; color:#ffae94; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.site-footer .footer-invitation h2 { color:#fff; font-size:clamp(36px,4.3vw,58px); font-weight:400; line-height:1.12; letter-spacing:-.02em; text-transform:none; margin-bottom:20px; }
.footer-invitation-copy > p:last-child { max-width:470px; margin:0; font-size:15px; line-height:1.85; }
.site-footer .footer-cta { flex-shrink:0; display:inline-flex; align-items:center; justify-content:space-between; gap:28px; padding:19px 24px; border:1px solid transparent; border-radius:8px; color:#202631; background:#ff997a; font-size:14px; font-weight:700; transition:background var(--transition), transform var(--transition); }
.site-footer .footer-cta:hover { background:#ffb49e; transform:translateY(-2px); }
.ui-arrow { display:inline-block; flex-shrink:0; font-size:.78em; line-height:1; vertical-align:.04em; }
.footer-email .ui-arrow, .footer-directions .ui-arrow, .footer-bottom .ui-arrow { margin-left:5px; }
.footer-cta > i { flex-shrink:0; display:inline-block; font-size:15px; line-height:1; }
.footer-mood-photo { width:100%; max-width:390px; height:158px; object-fit:cover; object-position:center 55%; margin-top:28px; border-radius:12px; }
.site-footer .footer-message { min-width:0; padding:30px; gap:20px; border:1px solid #e4e7ec; border-radius:16px; color:#343a48; background:#fff; box-shadow:0 20px 60px rgb(0 0 0 / .12); }
.site-footer .footer-form-eyebrow { color:#a44228; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin:0 0 -10px; }
.site-footer .footer-message h3 { color:#202631; font-family:"Open Sans",Arial,sans-serif; font-size:21px; font-weight:700; line-height:1.4; text-transform:none; }
.footer-message .form-row { gap:16px; }
.footer-message label { min-width:0; font-size:12px; font-weight:700; }
.site-footer .footer-message input, .site-footer .footer-message textarea { min-width:0; background:#f7f8fa; border:1px solid #dce1e7; border-radius:7px; padding:12px 14px; color:#242a34; font-size:13px; font-weight:400; }
.site-footer .footer-message input { min-height:46px; }
.site-footer .footer-message textarea { min-height:122px; resize:vertical; line-height:1.7; }
.site-footer .footer-message input:focus, .site-footer .footer-message textarea:focus { background:white; border-color:#9a452d; outline:2px solid rgb(154 69 45 / .18); outline-offset:2px; }
.site-footer .footer-message .footer-cta { width:100%; justify-self:stretch; padding:14px 18px; border-radius:7px; }
.site-footer .footer-message .form-status { color:#606b79; font-size:11px; font-weight:400; line-height:1.6; margin:-8px 0 0; min-height:0; }
.footer-columns { display:grid; grid-template-columns:1.3fr .7fr .8fr 1.2fr; gap:40px; padding:54px 0 52px; }
.footer-columns > * { min-width:0; }
.footer-brand-logo { display:inline-flex; margin-bottom:22px; }
.footer-brand-logo img { width:147px; height:24px; }
.footer-brand > p { max-width:280px; font-size:13px; line-height:1.9; margin:0 0 22px; }
.site-footer a { color:var(--footer-muted); }
.site-footer a:hover { color:#fff; }
.site-footer a:focus-visible { outline:2px solid #ffb49e; outline-offset:5px; border-radius:3px; }
.site-footer .footer-location { display:inline-flex; align-items:center; gap:8px; font-size:11px; color:#e0e5ed; }
.footer-location-dot { flex-shrink:0; width:6px; height:6px; border-radius:50%; background:#ff997a; }
.site-footer .footer-columns h3 { color:#fff; font-family:"Open Sans",Arial,sans-serif; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin:2px 0 18px; }
.footer-links ul { list-style:none; padding:0; margin:0; display:grid; gap:4px; }
.footer-links a { display:inline-block; font-size:13px; padding:6px 0; }
.footer-reach > a { display:block; width:fit-content; font-size:13px; padding:6px 0; }
.site-footer .footer-email { color:#fff; overflow-wrap:anywhere; }
.footer-reach address { margin:18px 0 10px; font-size:13px; line-height:1.9; }
.site-footer .footer-directions { color:#ffb49e; }
.footer-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 30px; padding:24px 0 28px; border-top:1px solid var(--footer-line); font-size:11px; }
.footer-bottom p { margin:0; }
.footer-bottom nav { display:flex; flex-wrap:wrap; gap:24px; }
.footer-bottom nav a { display:inline-block; padding:8px 0; }
#event-brief, #venue { scroll-margin-top:110px; }
/* Cart: a useful empty state and a single, aligned checkout workspace. */
.cart-section { background:#f6f7f9; }
.cart-section > .container > .section-head { text-align:left; margin-bottom:32px; }
.cart-section .section-head h2 { font-size:36px; text-transform:none; }
.cart-section .section-head p { margin-top:10px; color:#626d7b; font:400 14px/1.7 "Open Sans",Arial,sans-serif; text-transform:none; }
.cart-workspace { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); gap:28px; align-items:start; }
.cart-items-panel, .cart-order-panel { min-width:0; padding:26px; border:1px solid #e0e5eb; border-radius:14px; background:white; box-shadow:0 8px 28px rgb(18 24 31 / .035); }
.cart-panel-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom:24px; }
.cart-panel-heading h3, .cart-order-panel h3, .cart-coupon h3 { font-size:21px; text-transform:none; }
.cart-panel-heading > span { padding:5px 10px; border-radius:20px; color:#687282; background:#f2f4f7; font-size:11px; white-space:nowrap; }
.cart-section .cart-table { min-width:0; margin-bottom:18px; }
.cart-section .cart-table th { background:#f6f7f9; padding:12px 8px; color:#667181; font-size:10px; letter-spacing:.04em; text-transform:uppercase; }
.cart-section .cart-table td { padding:20px 8px; font-size:12px; }
.cart-section .cart-product { gap:12px; }
.cart-section .cart-product img { width:58px; height:68px; object-fit:cover; border-radius:7px; }
.cart-section .cart-product a { color:#242a34; }
.cart-section .cart-product .meta { color:#778190; font-size:10px; line-height:1.5; max-width:150px; }
.cart-section .cart-table input { width:56px; padding:8px; font-size:12px; }
.cart-section .cart-table .icon-button { width:28px; height:28px; background:#f2f4f7; color:#687282; border:0; font-size:18px; }
.cart-section .cart-table .icon-button:hover { background:#fff0eb; color:#a44228; }
.cart-section .button { display:inline-flex; justify-content:center; align-items:center; gap:14px; background:#343a48; color:white; font-size:11px; text-transform:none; min-height:44px; padding:12px 18px; }
.cart-section .button:hover { background:#202631; }
.cart-section .button-outline { border:1px solid #dce1e7; background:white; color:#343a48; }
.cart-section .button-outline:hover { background:#f4f6f8; }
.cart-section .cart-actions { gap:12px; margin:0; }
.cart-section .cart-actions .form-status { flex-basis:100%; color:#647082; font-size:12px; font-weight:400; }
.cart-coupon { margin-top:26px; padding-top:24px; border-top:1px solid #e0e5eb; }
.cart-coupon p { color:#677282; font-size:12px; margin:10px 0 16px; }
.cart-coupon .coupon-form { gap:10px; }
.cart-coupon input { background:#f8f9fb; font-size:12px; }
.cart-order-panel > .eyebrow { font-size:10px; color:#a44228; margin-bottom:9px; }
.cart-order-panel .totals-list { margin:20px 0 24px; }
.cart-order-panel .totals-list li { padding:12px 0; color:#677282; border:0; font-size:12px; }
.cart-order-panel .totals-list strong { color:#343a48; }
.cart-order-panel .totals-list .totals-line { margin-top:12px; padding-top:20px; border-top:1px solid #e0e5eb; color:#242a34; font-size:18px; }
.cart-order-panel > .button { display:flex; width:100%; justify-content:space-between; background:#ff997a; color:#202631; font-weight:700; }
.cart-order-panel > .button:hover { background:#ffad94; }
.cart-preview-note { margin:12px 0 24px; color:#778190; font-size:10px; text-align:center; }
.cart-delivery { display:flex; align-items:flex-start; gap:12px; padding:20px 0; border-block:1px solid #e0e5eb; }
.cart-delivery > i { color:#a44228; margin-top:3px; }
.cart-delivery strong { font-size:12px; }
.cart-delivery p { margin:7px 0 0; color:#778190; font-size:11px; line-height:1.8; }
.cart-help { display:inline-block; margin-top:18px; font-size:11px; color:#596576; }
.cart-empty { max-width:760px; margin:0 auto; padding:50px 36px 30px; text-align:center; background:white; border:1px solid #e0e5eb; border-radius:16px; }
.cart-empty-icon { display:grid; place-items:center; width:76px; height:76px; margin:0 auto 24px; border-radius:22px; background:#fff0e9; color:#ae4d31; font-size:30px; transform:rotate(-8deg); }
.cart-empty .eyebrow { font-size:10px; color:#a44228; margin-bottom:12px; }
.cart-empty h3 { font-size:34px; text-transform:none; margin-bottom:16px; }
.cart-empty > p:not(.eyebrow) { max-width:400px; margin:0 auto 24px; color:#697383; line-height:1.85; }
.cart-demo-prompt { display:grid; justify-items:center; gap:8px; border-top:1px solid #e0e5eb; margin-top:34px; padding-top:24px; }
.cart-demo-prompt > span { color:#778190; font-size:12px; }
.cart-demo-prompt button { padding:8px 12px; border:0; background:transparent; color:#a44228; font-size:13px; font-weight:700; }
.cart-demo-prompt small { color:#778190; font-size:10px; }
.cart-demo-prompt > a { font-size:13px; color:#a44228; font-weight:700; padding:8px; }
.checkout-section .checkout-grid { grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr); gap:28px; }
.checkout-section .checkout-form { padding:30px; background:white; border:1px solid #e0e5eb; border-radius:14px; gap:20px; box-shadow:0 8px 28px rgb(18 24 31 / .035); }
.checkout-form-heading { display:flex; align-items:flex-start; gap:14px; margin:0 0 4px; }
.checkout-form-heading:not(:first-child) { border-top:1px solid #e0e5eb; padding-top:24px; margin-top:6px; }
.checkout-step { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; border-radius:9px; background:#fff0e9; color:#a44228; font-size:11px; font-weight:700; }
.checkout-section .checkout-form h3 { margin:0 0 6px; font-size:22px; text-transform:none; }
.checkout-form-heading p { margin:0; font-size:11px; color:#778190; }
.checkout-section .form-row { gap:18px; }
.checkout-section .checkout-form label { min-width:0; font-size:12px; font-weight:600; color:#475160; }
.checkout-section .checkout-form input:not([type=checkbox]):not([type=radio]) { min-width:0; min-height:46px; background:#f8f9fb; border:1px solid #dce1e7; border-radius:7px; color:#242a34; }
.checkout-section .checkout-form input:focus { background:white; border-color:#9a452d; }
.checkout-section .checkout-form .radio-row { display:flex; gap:10px; align-items:center; padding:14px; border:1px solid #e0e5eb; border-radius:8px; }
.checkout-section .radio-row:has(input:checked) { border-color:#db8e76; background:#fff7f3; }
.checkout-section .checkout-form .checkbox-row { display:flex; gap:10px; align-items:flex-start; padding:4px 0; font-weight:400; line-height:1.7; }
.checkout-section .checkout-form input[type=checkbox], .checkout-section .checkout-form input[type=radio] { flex-shrink:0; margin:2px 0 0; }
.checkout-section .checkout-form > .button { width:100%; justify-content:space-between; background:#ff997a; color:#202631; }
.checkout-section .checkout-form .form-status { margin:0; padding:14px; border-radius:8px; color:#687282; background:#f6f7f9; font-size:12px; font-weight:400; }
.checkout-section .order-summary { box-shadow:0 8px 28px rgb(18 24 31 / .035); }
.checkout-section .order-summary:hover { transform:none; border-color:#e0e5eb; }
.checkout-section .order-summary .link-list { gap:0; margin-top:20px; }
.checkout-section .order-summary .link-list li { align-items:center; gap:10px; padding:16px 0; font-size:12px; }
.checkout-line-item { display:flex; align-items:center; gap:12px; }
.checkout-line-item img { width:48px; height:56px; object-fit:cover; border-radius:6px; flex-shrink:0; }
.checkout-line-item small { display:block; color:#778190; font-size:10px; margin-top:5px; }
.checkout-demo-note { display:flex; align-items:flex-start; gap:9px; font-size:11px; color:#778190; padding:14px; border-radius:8px; background:#f6f7f9; }
.checkout-demo-note i { margin-top:3px; }
.checkout-edit { display:inline-block; color:#a44228; font-size:12px; font-weight:600; padding:8px 0; }
.social-list span.social-link { cursor:default; opacity:.6; }
.portfolio-grid { gap:18px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.gallery-link { display:block; width:100%; height:100%; }
.gallery-overlay { position:absolute; inset:auto 0 0; padding:36px 20px 20px; display:grid; gap:6px; background:linear-gradient(transparent,rgba(0,0,0,.88)); color:white; }
.gallery-overlay strong { font-family:Oswald,sans-serif; font-size:24px; text-transform:uppercase; }
.gallery-overlay .eyebrow { color:#ffbda6; }
.filter-bar button { color:var(--color-text); }
.gallery .filter-bar button, .section-dark .filter-bar button { color:white; }
.filter-bar button.is-active { color:var(--color-red-hover); }
.plan-feature-list { padding:0; list-style:none; margin:24px 0; text-align:left; }
.plan-feature-list li { padding:10px 0; border-bottom:1px solid var(--color-border); }
.pricing-card .plan-feature-list i { display:inline; width:auto; height:auto; margin:0 10px 0 0; background:none; color:var(--color-red-hover); font-size:14px; box-shadow:none; }
.price span, .price small { font-family:inherit; font-size:16px; }
.muted { color:var(--color-text-muted); }
.faq-list { max-width:820px; margin:auto; }
details { border-bottom:1px solid var(--color-border); padding:20px 0; }
summary { cursor:pointer; font-weight:700; font-size:18px; }
details p { margin:16px 0 0; }
.project-detail { grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); }
.project-detail h2 { font-size:38px; margin:12px 0 24px; }
.project-detail h3 { margin:24px 0 12px; }
.bulleted-list { list-style:disc; padding-left:22px; }
.dl-list dt { font-weight:700; margin-top:16px; }
.dl-list dd { margin:4px 0 0; }
.search-layout { max-width:900px; }
.search-bar { display:flex; gap:12px; align-items:center; }
.search-bar input { min-width:0; flex:1; }
.search-filters { display:flex; flex-wrap:wrap; gap:24px; }
.search-filters label { display:block; }
.search-results { list-style:none; margin:32px 0; padding:0; }
.search-results li { padding:24px 0; border-bottom:1px solid var(--color-border); }
.search-results h3 { margin-bottom:12px; }
.search-meta { color:var(--color-text-muted); font-size:13px; }
.pagination button { min-width:44px; min-height:44px; border:1px solid var(--color-border); background:white; color:var(--color-text); }
.pagination button.is-active { background:var(--color-red); color:white; }
.component-block { margin-bottom:48px; }
.component-block > h3 { margin-bottom:20px; }
.demo-form { max-width:640px; }
.alert { padding:16px 20px; border-left:4px solid; border-radius:4px; margin-bottom:12px; }
.alert-success { background:#edf8f0; color:#205c32; }
.alert-info { background:#edf5ff; color:#214e80; }
.alert-warning { background:#fff7dc; color:#785715; }
.alert-error { background:#ffeded; color:#903030; }
.progress { height:34px; background:var(--color-bg-soft); margin:12px 0; border-radius:4px; overflow:hidden; }
.progress-bar { height:100%; background:var(--color-navy); color:white; padding:4px 12px; white-space:nowrap; }
.tag, .badge { display:inline-block; background:var(--color-red-soft); color:var(--color-text-strong); padding:6px 12px; border-radius:4px; }
.row { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.col-12 { grid-column:span 12; } .col-8 { grid-column:span 8; } .col-6 { grid-column:span 6; } .col-4 { grid-column:span 4; } .col-3 { grid-column:span 3; }
.grid-demo .row > div { background:var(--color-red-soft); padding:20px 8px; text-align:center; border:1px solid var(--color-border); border-radius:4px; }
.type-scale > *, .type-prose > *, .ui-words > * { margin-bottom:20px; }
.type-scale h1 { color:var(--color-text-strong); }
.search-section { background:#f6f7f9; }
.search-section .search-layout { max-width:1060px; }
.search-section .search-form { padding:32px; gap:22px; background:white; border:1px solid #e0e5eb; border-radius:16px; box-shadow:0 8px 28px rgb(18 24 31 / .035); }
.search-form-heading h2 { font-size:32px; text-transform:none; line-height:1.3; margin-bottom:10px; }
.search-form-heading p { color:#697383; font-size:13px; margin:0; }
.search-section .search-bar { display:flex; flex-wrap:nowrap; position:relative; gap:10px; }
.search-section .search-bar > i { position:absolute; top:50%; left:17px; transform:translateY(-50%); color:#778190; font-size:15px; pointer-events:none; }
.search-section .search-bar input { min-height:52px; padding:13px 16px 13px 44px; border:1px solid #dce1e7; border-radius:8px; background:#f8f9fb; color:#242a34; font-size:14px; }
.search-section .search-bar input:focus { background:white; border-color:#a44228; }
.search-section .search-bar .button { flex-shrink:0; min-height:52px; padding:12px 24px; border-radius:8px; background:#343a48; color:white; font-size:12px; text-transform:none; }
.search-section .search-bar .button:hover { background:#202631; }
.search-section .search-filters { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.search-filter-label { margin-right:6px; color:#778190; font-size:11px; }
.search-section .search-filters label { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid #e0e5eb; border-radius:24px; color:#667181; font-size:11px; cursor:pointer; }
.search-section .search-filters label:has(input:checked) { color:#86412c; border-color:#f0d1c4; background:#fff4ee; }
.search-section .search-filters input { margin:0; width:14px; height:14px; min-height:14px; accent-color:#a94e32; }
.search-suggestions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; border-top:1px solid #edf0f3; padding-top:16px; }
.search-suggestions > span { color:#778190; font-size:11px; margin-right:4px; }
.search-suggestions button { border:0; background:#f2f4f7; color:#596473; padding:7px 12px; border-radius:6px; font-size:11px; }
.search-suggestions button:hover { background:#e8ecf1; color:#242a34; }
.search-results-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:38px 0 22px; }
.search-results-heading h2 { font-size:27px; line-height:1.35; text-transform:none; overflow-wrap:anywhere; }
.search-results-heading p { color:#778190; font-size:12px; margin:8px 0 0; }
.search-reset { flex-shrink:0; display:flex; align-items:center; gap:10px; border:0; background:transparent; color:#a44228; padding:10px 0 10px 10px; font-size:11px; }
.search-section .search-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0; }
.search-section .search-results li { padding:0; border:0; min-width:0; }
.search-result-link { display:flex; flex-direction:column; height:100%; padding:26px; border:1px solid #e0e5eb; border-radius:12px; background:white; color:#242a34; transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition); }
.search-result-link:hover { border-color:#d5a291; box-shadow:0 10px 28px rgb(18 24 31 / .05); transform:translateY(-2px); color:#242a34; }
.search-result-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:22px; }
.search-result-kind { display:inline-flex; align-items:center; gap:9px; font-size:10px; color:#778190; }
.search-result-kind > i { display:grid; place-items:center; width:28px; height:28px; background:#f2f4f7; border-radius:7px; color:#667181; font-size:12px; }
.search-result-price { font-size:13px; color:#a44228; }
.search-section .search-results h3 { color:#242a34; font-size:25px; line-height:1.3; text-transform:none; margin:0 0 12px; }
.search-result-link > p { color:#697383; font-size:12px; line-height:1.85; margin:0 0 24px; }
.search-result-action { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; color:#a44228; font-size:11px; font-weight:600; }
.search-result-action i { font-size:10px; }
.search-result-link mark { color:inherit; background:#ffe8d9; padding:0 2px; border-radius:3px; }
.search-load-more { display:flex; align-items:center; gap:14px; margin:28px auto 0; padding:13px 22px; border:1px solid #dce1e7; border-radius:8px; background:white; color:#343a48; font-size:12px; }
.search-load-more:hover { border-color:#a44228; }
.search-empty { text-align:center; padding:44px 26px; background:white; border:1px solid #e0e5eb; border-radius:12px; }
.search-empty > i { display:grid; place-items:center; width:60px; height:60px; border-radius:18px; background:#fff0e9; color:#a44228; margin:0 auto 22px; font-size:22px; }
.search-empty h3 { font-size:29px; text-transform:none; margin-bottom:12px; }
.search-empty p { max-width:390px; margin:0 auto 24px; color:#697383; line-height:1.8; }
.search-empty .button { display:inline-flex; background:#343a48; color:white; font-size:12px; text-transform:none; }
.page-link-grid { list-style:none; margin:0; padding:0; }
.shop-layout { grid-template-columns:260px minmax(0,1fr); gap:30px; }
.shop-filter { padding:24px; background:white; border:1px solid #e0e5eb; border-radius:14px; box-shadow:0 8px 28px rgb(18 24 31 / .035); }
.shop-filter-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.shop-filter-heading h3 { margin:0; font-size:21px; text-transform:none; }
.shop-filter-heading button { border:0; background:transparent; padding:8px 0 8px 8px; color:#9a452d; font-size:11px; font-weight:600; }
.shop-filter-intro { color:#778190; font-size:11px; line-height:1.75; margin:8px 0 24px; }
.shop-filter .stacked-form { gap:22px; }
.shop-filter fieldset { padding:0; border:0; min-width:0; }
.shop-filter legend { padding:0; margin-bottom:10px; font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:#697383; }
.shop-filter .stacked-form label { display:flex; align-items:center; gap:10px; padding:10px 11px; min-height:42px; margin:4px 0; border:1px solid transparent; border-radius:7px; font-size:12px; color:#596473; cursor:pointer; }
.shop-filter .stacked-form label:hover { background:#f5f6f8; }
.shop-filter .stacked-form label:has(input:checked) { background:#fff5f0; border-color:#f2d9cf; color:#343a48; }
.shop-filter .stacked-form input { margin:0; width:16px; height:16px; min-height:16px; flex-shrink:0; accent-color:#b65a3c; }
.shop-filter label small { margin-left:auto; font-size:10px; color:#778190; }
.shop-filter .button { display:flex; align-items:center; justify-content:space-between; width:100%; padding:13px 15px; background:#343a48; color:#fff; font-size:12px; text-transform:none; border-radius:7px; }
.shop-filter .button:hover { background:#202631; }
.shop-filter-note { text-align:center; margin:-12px 0 0; color:#778190; font-size:10px; }
.shop-toolbar { gap:14px; }
.shop-toolbar p { font-size:12px; color:#697383; }
.shop-toolbar label { font-size:11px; color:#697383; }
.shop-toolbar select { border-color:#e0e5eb; border-radius:7px; padding:10px 12px; font-size:12px; }
.shop-toolbar .button { display:inline-flex; align-items:center; min-height:40px; padding:10px 16px; font-size:11px; text-transform:none; border-radius:7px; }
.search-shortcuts .section-head { text-align:left; margin-bottom:32px; max-width:600px; }
.search-shortcuts .section-head h2 { font-size:42px; text-transform:none; margin-bottom:14px; }
.search-shortcuts .section-head p { color:#c4ccd8; font:400 14px/1.8 "Open Sans",Arial,sans-serif; text-transform:none; }
.search-shortcuts .page-link-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.search-shortcuts .page-link-grid li { min-width:0; }
.search-shortcuts .page-link-grid a { position:relative; display:flex; align-items:flex-start; justify-content:flex-start; gap:16px; height:100%; min-height:136px; padding:26px 32px 26px 24px; border:1px solid rgb(255 255 255 / .14); border-radius:12px; background:#414957; color:white; text-align:left; font-weight:400; text-transform:none; transition:background var(--transition),border-color var(--transition),transform var(--transition); }
.search-shortcuts .page-link-grid a:hover { background:#4a5362; border-color:#e2a08a; transform:translateY(-3px); }
.search-shortcuts .page-link-grid i { display:grid; place-items:center; flex-shrink:0; width:38px; height:38px; background:rgb(255 174 148 / .12); color:#ffb49e; border-radius:10px; font-size:16px; }
.search-shortcuts .page-link-grid strong { display:block; color:white; font-family:Oswald,Arial,sans-serif; font-size:21px; font-weight:400; line-height:1.3; margin-bottom:8px; }
.search-shortcuts .page-link-grid small { display:block; color:#c4ccd8; font-size:11px; line-height:1.75; }
.search-shortcuts .shortcut-arrow { position:absolute; right:14px; top:16px; color:#aeb8c6; font-size:17px; }
.search-shortcuts .page-link-grid i.shortcut-arrow { display:inline-block; width:auto; height:auto; background:none; border-radius:0; color:#c4ccd8; font-size:11px; }
@media(max-width:991px) {
  .search-shortcuts .page-link-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-grid { grid-template-columns:1fr; }
  .js .nav-menu:not(.is-open) { visibility:hidden; }
  .cart-workspace { grid-template-columns:1fr; }
  .checkout-section .checkout-grid { grid-template-columns:1fr; }
  .shop-layout { grid-template-columns:200px minmax(0,1fr); gap:24px; }
  .footer-columns { grid-template-columns:1.2fr 1fr; gap:38px 48px; }
  .footer-brand { grid-column:1; grid-row:1; }
  .footer-reach { grid-column:2; grid-row:1; }
  .footer-invitation { gap:28px; }
  .footer-message .form-row { grid-template-columns:1fr; }
  .product-detail, .project-detail { grid-template-columns:1fr; }
  .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .search-section .search-form { padding:22px; gap:18px; }
  .search-form-heading h2 { font-size:28px; }
  .search-section .search-bar { flex-wrap:wrap; }
  .search-section .search-bar > i { top:26px; }
  .search-section .search-bar input { flex-basis:100%; }
  .search-section .search-bar .button { width:100%; min-height:46px; }
  .search-filter-label { width:100%; margin:0 0 3px; }
  .search-section .search-filters label { font-size:10px; padding:8px 10px; gap:6px; }
  .search-suggestions > span { width:100%; margin-bottom:4px; }
  .search-results-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .search-results-heading h2 { font-size:25px; }
  .search-reset { padding-left:0; }
  .search-section .search-results { grid-template-columns:1fr; }
  .search-result-link { padding:22px; }
  .search-shortcuts .page-link-grid { grid-template-columns:1fr; }
  .search-shortcuts .page-link-grid a { min-height:110px; }
  .search-shortcuts .section-head h2 { font-size:34px; }
  .shop-filter .stacked-form { grid-template-columns:1fr 1fr; gap:16px; }
  .shop-filter .shop-filter-note { grid-column:1/-1; }
  .shop-filter .stacked-form label { padding:10px 7px; gap:7px; }
  #event-brief .long-form { padding:22px; }
  .cart-items-panel, .cart-order-panel { padding:20px; }
  .checkout-section .checkout-form { padding:22px; }
  .cart-empty { padding:32px 22px 24px; }
  .cart-empty h3 { font-size:29px; }
  .cart-section .cart-table thead { display:none; }
  .cart-section .cart-table, .cart-section .cart-table tbody { display:block; }
  .cart-section .cart-table tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); position:relative; padding:16px 0; border-bottom:1px solid #e0e5eb; }
  .cart-section .cart-table td { display:block; padding:10px 4px; border:0; }
  .cart-section .cart-table td:first-child { grid-column:1/-1; padding-right:32px; }
  .cart-section .cart-table td:last-child { position:absolute; right:0; top:22px; }
  .cart-section .cart-table td:nth-child(n+2):nth-child(-n+4)::before { content:attr(data-label); display:block; color:#778190; font-size:10px; margin-bottom:8px; }
  .cart-section .cart-table td:nth-child(4) { text-align:right; }
  .cart-section .cart-product .meta { max-width:220px; }
  .shop-layout, .shop-layout .shop-grid, .cart-summary-grid, .form-row, .portfolio-grid { grid-template-columns:1fr; }
  .shop-filter { padding:20px; }
  .shop-filter form { grid-template-columns:1fr 1fr; gap:16px; }
  .shop-filter button { grid-column:1/-1; }
  .product-info h2 { font-size:34px; }
  .search-bar { flex-wrap:wrap; }
  .search-bar button { width:100%; }
  .row { gap:6px; }
  .grid-demo .row > div { font-size:11px; padding:14px 2px; }
  .data-table th, .data-table td { padding:8px; overflow-wrap:anywhere; }
  .footer-invitation { grid-template-columns:1fr; gap:28px; padding:48px 0 36px; }
  .site-footer .footer-message { padding:22px; }
  .footer-mood-photo { max-width:none; height:150px; }
  .footer-invitation-copy > p:last-child { font-size:14px; }
  .footer-columns { grid-template-columns:1fr 1fr; gap:32px 24px; padding:36px 0; }
  .footer-brand { grid-column:1/-1; grid-row:auto; }
  .footer-brand > p { max-width:100%; }
  .footer-reach { grid-column:1/-1; grid-row:auto; padding-top:26px; border-top:1px solid var(--footer-line); }
  .footer-links a { padding:10px 0; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:8px; padding:20px 0; }
}
