/*
Theme Name: Elegant Occasions
Theme URI: https://elegantoccasions.com.au/
Description: Elegant Occasions child theme for Kadence. Brand fonts, palette and block styles. Content lives in the block editor.
Author: ICT Asyst
Author URI: https://ictasyst.com.au/
Template: kadence
Version: 1.0.1
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: elegant-occasions
*/

/* ---------- tokens ---------- */
:root {
	--eo-rose: #a44958;
	--eo-rose-deep: #884044;
	--eo-rose-soft: #b66a70;
	--eo-ink: #05090b;
	--eo-ivory: #fffaf0;
	--eo-paper: #f7f1e9;
	--eo-line: rgba(164, 73, 88, .28);
	--eo-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--eo-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--eo-radius: 2px;
	--eo-shadow: 0 18px 40px rgba(5, 9, 11, .08);
}

body { font-family: var(--eo-sans); color: #2b2224; background: var(--eo-ivory); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .eo-serif { font-family: var(--eo-serif); font-weight: 500; letter-spacing: -.005em; }
a { text-underline-offset: .18em; }
img { height: auto; }

/* ---------- small type ---------- */
.eo-eyebrow, p.eo-eyebrow {
	font-family: var(--eo-sans); font-size: .74rem; font-weight: 600; letter-spacing: .28em;
	text-transform: uppercase; color: var(--eo-rose); margin-bottom: .9rem;
}
.eo-dark .eo-eyebrow { color: var(--eo-rose-soft); }
.eo-ornament { display: block; width: 64px; height: 1px; background: var(--eo-rose); margin: 1rem auto 1.4rem; border: 0; opacity: .8; }
.eo-ornament.is-left { margin-left: 0 !important; }
.eo-lead { font-size: 1.06rem; line-height: 1.75; max-width: 46rem; }
.has-text-align-center.eo-lead, .eo-center .eo-lead { margin-left: auto; margin-right: auto; }
.eo-accent { color: var(--eo-rose); }
.eo-dark .eo-accent { color: var(--eo-rose-soft); }

/* in-page anchors land below the sticky header */
.entry-content [id] { scroll-margin-top: 110px; }

/* ---------- sections ---------- */
/* Kadence classic theme has no theme.json content size: constrain full-width groups ourselves */
.entry-content > .wp-block-group.alignfull, .eo-cta.alignfull { padding-left: clamp(1rem, 4vw, 2.5rem); padding-right: clamp(1rem, 4vw, 2.5rem); }
.wp-block-group.alignfull > :not(.alignfull):not(.alignwide) { max-width: 1240px; margin-left: auto !important; margin-right: auto !important; }
.wp-block-group.alignfull > .eo-lead, .wp-block-group.alignfull > p.has-text-align-center { max-width: 46rem; }
.wp-block-cover.eo-hero { padding-left: clamp(1rem, 4vw, 2.5rem); padding-right: clamp(1rem, 4vw, 2.5rem); }
.entry-content > .wp-block-cover.alignfull:first-child { margin-top: 0; }
.entry-content > .alignfull { margin-top: 0; margin-bottom: 0; }
.eo-section { padding-top: clamp(3.5rem, 8vw, 6.5rem); padding-bottom: clamp(3.5rem, 8vw, 6.5rem); }
.eo-paper { background: var(--eo-paper); }
.eo-dark { background: var(--eo-ink); color: #efe6e2; }
.eo-dark h1, .eo-dark h2, .eo-dark h3 { color: var(--eo-ivory); }
.eo-dark a:not(.wp-block-button__link) { color: var(--eo-ivory); }

/* ---------- buttons ---------- */
.wp-block-button .wp-block-button__link, .eo-btn {
	font-family: var(--eo-sans); font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
	border-radius: var(--eo-radius); padding: 1.05em 2.2em; transition: background .2s, color .2s, border-color .2s;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--eo-rose); color: #fff; border: 1px solid var(--eo-rose); }
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--eo-rose-deep); border-color: var(--eo-rose-deep); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--eo-rose); border: 1px solid var(--eo-rose); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--eo-rose); color: #fff; }
.eo-dark .wp-block-button.is-style-outline .wp-block-button__link, .eo-hero .wp-block-button.is-style-outline .wp-block-button__link { color: var(--eo-ivory); border-color: rgba(255, 250, 240, .55); }
.eo-link-arrow a, a.eo-link-arrow { font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--eo-rose); }
.eo-link-arrow a::after, a.eo-link-arrow::after { content: " \2192"; }

/* ---------- hero (cover block) + slider ---------- */
.eo-hero.wp-block-cover { min-height: min(100vh, 900px); }
.eo-hero.is-page-hero.wp-block-cover { min-height: 480px; align-items: flex-end; }
.eo-hero h1 { font-size: clamp(2.6rem, 6vw, 5rem); line-height: 1.02; color: var(--eo-ivory); }
.eo-hero.is-page-hero h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); }
.eo-hero .eo-breadcrumb, .eo-hero .rank-math-breadcrumb { font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 250, 240, .8); }
.eo-hero .rank-math-breadcrumb a { color: inherit; text-decoration: none; }
.eo-hero .wp-block-cover__image-background { transition: opacity 1.2s ease; }
.eo-hero .eo-slide-layer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; z-index: 0; }
.eo-hero .eo-slide-layer.is-on { opacity: 1; }
.eo-hero .eo-hero-slides { display: none !important; }
.eo-hero-dots { position: absolute; left: 50%; bottom: 2rem; transform: translateX(-50%); display: flex; gap: .6rem; z-index: 3; }
.eo-hero-dots button { width: 38px; height: 3px; padding: 0; border: 0; background: rgba(255, 250, 240, .35); cursor: pointer; }
.eo-hero-dots button.is-active { background: var(--eo-rose-soft); }
@media (prefers-reduced-motion: reduce) { .eo-hero .eo-slide-layer { transition: none; } }

.eo-hero .wp-block-cover__inner-container { max-width: 940px; }
.eo-hero .eo-lead { color: rgba(255, 250, 240, .88); }
.eo-hero .eo-eyebrow { color: var(--eo-rose-soft); }
.eo-hero .eo-accent { color: #c98088; }
.eo-hero.is-page-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(5, 9, 11, .94) 0%, rgba(5, 9, 11, .78) 45%, rgba(5, 9, 11, .3) 100%) !important; opacity: 1 !important; }
.eo-hero.is-page-hero .wp-block-cover__inner-container { max-width: 1240px; }
.eo-hero.is-page-hero .wp-block-cover__inner-container > * { max-width: 640px; margin-left: 0; }

/* ---------- cards ---------- */
.eo-cards > .wp-block-column, .eo-card { background: #fff; border: 1px solid rgba(5, 9, 11, .06); box-shadow: var(--eo-shadow); }
.eo-cards > .wp-block-column { padding: 0 0 1.8rem; text-align: center; }
.eo-cards .wp-block-image { margin: 0 0 0; }
.eo-cards .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.eo-cards .eo-ornament { width: 40px; margin: .8rem auto 1rem; }
.eo-cards-5 { gap: 1.2rem; }
.eo-cards .eo-num { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin: -26px auto .9rem; border-radius: 50%; background: var(--eo-rose-deep); color: #fff; font-family: var(--eo-serif); font-size: 1.1rem; position: relative; }
.eo-cards h3 { font-size: 1.55rem; margin: .2rem 1.2rem .4rem; }
.eo-cards h3.eo-small-caps { font-family: var(--eo-sans); font-size: .82rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.eo-cards p { margin: 0 1.4rem; font-size: .95rem; line-height: 1.65; color: #5b5052; }

/* price/product cards (service detail "text + pricing") */
.eo-price-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.6rem; }
.eo-price-grid > .wp-block-group { background: #fff; border: 1px solid rgba(5, 9, 11, .06); box-shadow: var(--eo-shadow); margin: 0 !important; }
.eo-price-grid figure { margin: 0; }
.eo-price-grid img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.eo-price-grid h3 { font-size: 1.35rem; margin: 1rem 1.1rem .3rem; text-transform: capitalize; }
.eo-price-grid p { font-size: .9rem; line-height: 1.6; margin: 0 1.1rem 1.2rem; color: #5b5052; }

/* collage (purpose section) */
.eo-collage { display: grid !important; grid-template-columns: 1.2fr .8fr; grid-template-rows: 1fr 1fr; gap: 1rem; }
.eo-collage > figure { margin: 0 !important; }
.eo-collage > figure:first-child { grid-row: 1 / span 2; }
.eo-collage img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eo-ticks { list-style: none; padding-left: 0; }
.eo-ticks li { position: relative; padding-left: 1.6rem; margin: .45rem 0; }
.eo-ticks li::before { content: ""; position: absolute; left: 0; top: .72em; width: .8rem; height: 1px; background: var(--eo-rose); }

.eo-list-cols { columns: 3 220px; column-gap: 2rem; max-width: 900px; margin-left: auto !important; margin-right: auto !important; text-align: left; }
.eo-list-cols li { break-inside: avoid; }

/* points (numbered list, dark showcase) */
.eo-points > .wp-block-group { border-top: 1px solid var(--eo-line); padding-top: 1rem; }
.eo-points .eo-num-text { font-family: var(--eo-serif); font-size: 1.6rem; color: var(--eo-rose-soft); }

/* gallery (lightbox via core "expand on click") */
.eo-gallery.wp-block-gallery { gap: .8rem; }
.eo-gallery.wp-block-gallery img { aspect-ratio: 1 / 1; object-fit: cover; }

.eo-gallery.wp-block-gallery.has-nested-images { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; }
.eo-gallery.wp-block-gallery.has-nested-images figure.wp-block-image { width: auto !important; margin: 0 !important; }
.eo-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: auto !important; aspect-ratio: 1 / 1; object-fit: cover; }
.eo-mosaic.wp-block-gallery.has-nested-images { grid-template-columns: repeat(3, 1fr); }
.eo-mosaic.wp-block-gallery.has-nested-images figure.wp-block-image:first-child { grid-column: 1 / -1; }
.eo-mosaic.wp-block-gallery.has-nested-images figure.wp-block-image:first-child img { aspect-ratio: 16 / 8; }

/* testimonials */
.eo-quotes > .wp-block-column { background: #fff; padding: 2.2rem 1.8rem; border: 1px solid rgba(5, 9, 11, .06); box-shadow: var(--eo-shadow); text-align: center; }
.eo-quotes .wp-block-quote { border: 0; margin: 0; padding: 0; }
.eo-quotes .wp-block-quote p { font-family: var(--eo-serif); font-size: 1.3rem; line-height: 1.45; font-style: italic; }
.eo-quotes .wp-block-quote cite { display: block; margin-top: 1rem; font-style: normal; font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--eo-rose); }
.eo-quotes .wp-block-quote::before { content: "\201C"; display: block; font-family: var(--eo-serif); font-size: 3.4rem; line-height: 1; color: var(--eo-rose-soft); }

/* FAQ (core Details blocks inside .eo-faq) */
.eo-faq .wp-block-details { border-bottom: 1px solid var(--eo-line); padding: 1.1rem 0; margin: 0; }
.eo-faq .wp-block-details summary { font-family: var(--eo-serif); font-size: 1.35rem; cursor: pointer; list-style: none; position: relative; padding-right: 2rem; }
.eo-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.eo-faq .wp-block-details summary::after { content: "+"; position: absolute; right: 0; top: 0; color: var(--eo-rose); font-family: var(--eo-sans); }
.eo-faq .wp-block-details[open] summary::after { content: "\2212"; }
.eo-faq .wp-block-details > p { margin-top: .8rem; }
/* FAQ (Kadence accordion, if used) */
.eo-faq .kt-accordion-pane { border: 0 !important; border-bottom: 1px solid var(--eo-line) !important; }
.eo-faq .kt-blocks-accordion-header { background: transparent !important; font-family: var(--eo-serif); font-size: 1.3rem !important; padding-left: 0 !important; }

/* footer CTA (synced pattern) */
.eo-cta { text-align: center; }
.eo-cta h2 { font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.05; }

/* ---------- inner pages (about, weddings, contact, ...) ---------- */
.eo-story { gap: clamp(1.5rem, 5vw, 4.5rem); }
.eo-story-img img, .eo-portrait img { width: 100%; height: auto; max-height: 720px; object-fit: cover; box-shadow: var(--eo-shadow); }
.eo-portrait-inset { max-width: 62%; margin: -18% 0 0 auto !important; position: relative; border: 8px solid var(--eo-ivory); box-shadow: var(--eo-shadow); }
.eo-portrait-inset figcaption, .eo-trio figcaption { font-size: .82rem; color: #6b6062; text-align: left; }
.eo-signature { font-family: var(--eo-serif); font-size: 1.25rem; line-height: 1.4; }
.eo-signature strong { font-weight: 600; }
.eo-band .eo-band-text { font-family: var(--eo-serif); font-size: clamp(1.6rem, 3.4vw, 2.6rem); line-height: 1.25; max-width: 52rem; margin-left: auto; margin-right: auto; color: var(--eo-ivory); }
.eo-features { gap: 1.6rem 2rem; }
.eo-feature { border-top: 1px solid var(--eo-line); padding-top: 1rem; }
.eo-feature h3 { font-size: 1.45rem; margin: 0 0 .35rem; }
.eo-feature p { margin: 0; color: #5b5052; }
.eo-trio img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.eo-steps { text-align: center; }
.eo-steps .eo-step { font-size: .78rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; margin: 0; }
.eo-steps-band { padding-top: 2.4rem !important; padding-bottom: 2.4rem !important; }
.eo-steps > .wp-block-group { border-top: 0; padding-top: 0; }
.eo-ledger { gap: 1.2rem; margin-top: 3rem; }
.eo-ledger-row { background: #fff; padding: 1.4rem 1.5rem; border: 1px solid rgba(5, 9, 11, .06); }
.eo-ledger-row h3 { font-size: 1.35rem; margin: .2rem 0 .5rem; }
.eo-ledger-row p { margin: .15rem 0; font-size: .92rem; }
.eo-reviews { columns: 3 300px; column-gap: 1.4rem; margin-top: 3rem; }
.eo-reviews > .eo-review { break-inside: avoid; background: #fff; padding: 1.6rem; margin: 0 0 1.4rem !important; border: 1px solid rgba(5, 9, 11, .06); box-shadow: var(--eo-shadow); }
.eo-review .wp-block-quote { border: 0; margin: 0; padding: 0; }
.eo-review .wp-block-quote p { font-size: .98rem; line-height: 1.7; }
.eo-review .wp-block-quote cite { display: block; margin-top: .8rem; font-style: normal; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--eo-rose); }
.eo-related { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.eo-related li a { display: inline-block; padding: .7em 1.2em; border: 1px solid var(--eo-line); text-decoration: none; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; }
.eo-narrow > * { max-width: 760px !important; }
.eo-posts.wp-block-latest-posts:empty { display: none; }
.eo-tabs a { display: inline-block; margin: .25rem; padding: .55em 1.1em; border: 1px solid var(--eo-line); text-decoration: none; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; }
.eo-gallery-cat { margin-top: 3rem !important; }
.eo-cta-cover { text-align: center; }

/* contact */
.eo-contact { gap: clamp(1.5rem, 4vw, 3.5rem); }
.eo-detail-title { font-family: var(--eo-sans) !important; font-size: .72rem !important; font-weight: 700 !important; letter-spacing: .22em; text-transform: uppercase; color: var(--eo-rose); margin: 1.6rem 0 .3rem; }
.eo-form-card { background: #fff; padding: clamp(1.4rem, 3vw, 2.4rem); border: 1px solid rgba(5, 9, 11, .06); box-shadow: var(--eo-shadow); }
.eo-enquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.2rem; }
.eo-enquiry-form .eo-full { grid-column: 1 / -1; }
.eo-enquiry-form label { display: grid; gap: .35rem; font-size: .74rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #4a3f41; }
.eo-enquiry-form input:not([type=file]), .eo-enquiry-form select, .eo-enquiry-form textarea { width: 100%; padding: .75rem .85rem; border: 1px solid rgba(5, 9, 11, .18); border-radius: 2px; background: var(--eo-ivory); font: 400 1rem/1.4 var(--eo-sans); letter-spacing: 0; text-transform: none; color: #2b2224; }
.eo-enquiry-form input:focus, .eo-enquiry-form select:focus, .eo-enquiry-form textarea:focus { outline: 2px solid var(--eo-rose-soft); outline-offset: 1px; }
.eo-enquiry-form .eo-help { font-weight: 400; letter-spacing: 0; text-transform: none; color: #7a6f71; }
.eo-enquiry-form input[type=file] { font: 400 .85rem var(--eo-sans); text-transform: none; letter-spacing: 0; }
.eo-enquiry-form input[type=file]::file-selector-button { margin-right: .8rem; border: 0; padding: .55rem .85rem; background: var(--eo-rose); color: #fff; font: 600 .7rem var(--eo-sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.eo-enquiry-form .eo-submit { background: var(--eo-rose); color: #fff; border: 0; padding: 1.05em 2.4em; font: 600 .76rem var(--eo-sans); letter-spacing: .2em; text-transform: uppercase; cursor: pointer; border-radius: 2px; }
.eo-enquiry-form .eo-submit:hover { background: var(--eo-rose-deep); }
.eo-enquiry-form .eo-status:empty { display: none; }
.eo-enquiry-form .eo-status { font-weight: 600; color: var(--eo-rose-deep); margin: 0; }
.eo-enquiry-form .eo-note { font-size: .85rem; color: #6b6062; margin: 0; }
@media (max-width: 640px) { .eo-enquiry-form { grid-template-columns: 1fr; } }

/* ---------- header (Kadence) ---------- */
.site-header .site-branding img { max-height: 76px; width: auto; }
.header-navigation .menu > li > a { font-family: var(--eo-serif); font-size: .92rem; letter-spacing: .12em; text-transform: uppercase; }
.eo-header-cta .button, .header-button { font-family: var(--eo-sans) !important; font-size: .72rem !important; letter-spacing: .2em !important; text-transform: uppercase; }
/* services mega menu: top item gets class eo-mega; its 4 children become columns */
.header-navigation .sub-menu a { font-family: var(--eo-sans) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: .86rem !important; font-weight: 400 !important; }
.site-header .header-social-wrap .social-button { background: transparent !important; border: 0 !important; color: rgba(255, 250, 240, .85) !important; box-shadow: none !important; }
.site-header .header-social-wrap .social-button:hover { color: var(--eo-rose-soft) !important; }
@media (min-width: 1025px) {
	.header-navigation li.eo-mega { position: static; }
	.header-navigation li.eo-mega > .sub-menu { display: none !important; }
	.header-navigation li.eo-mega:hover > .sub-menu, .header-navigation li.eo-mega:focus-within > .sub-menu, .header-navigation li.eo-mega.menu-item--toggled-on > .sub-menu { display: grid !important; opacity: 1; visibility: visible; clip: auto; height: auto; overflow: visible; }
	.header-navigation li.eo-mega > .sub-menu { grid-template-columns: repeat(4, minmax(170px, 1fr)); gap: .5rem 2rem; width: min(1100px, 92vw); left: 50%; transform: translateX(-50%); padding: 1.6rem 2rem; }
	.header-navigation li.eo-mega > .sub-menu > li > a { font-size: .7rem !important; font-weight: 700 !important; letter-spacing: .2em !important; text-transform: uppercase !important; color: var(--eo-rose-soft) !important; pointer-events: none; border: 0 !important; }
	.header-navigation li.eo-mega > .sub-menu > li > .sub-menu { position: static; display: block; opacity: 1; visibility: visible; clip: auto; height: auto; width: auto; box-shadow: none; background: transparent; transform: none; }
	.header-navigation li.eo-mega > .sub-menu > li > a .dropdown-nav-toggle { display: none; }
	.header-navigation li.eo-mega .sub-menu .sub-menu a { font-size: .86rem; padding-top: .28em; padding-bottom: .28em; }
}

.site-top-header-wrap .header-html, .site-top-header-wrap .header-html a { font-size: .74rem; color: rgba(255, 250, 240, .85); text-decoration: none; }
.site-top-header-wrap .header-html a + a { margin-left: 1.4rem; padding-left: 1.4rem; border-left: 1px solid rgba(255, 250, 240, .2); }
.header-html .eo-k { color: var(--eo-rose-soft); font-weight: 700; letter-spacing: .18em; text-transform: uppercase; font-size: .66rem; margin-right: .4em; }
.site-top-header-wrap .social-button { color: rgba(255, 250, 240, .85); }

/* ---------- footer ---------- */
.site-footer { font-size: .92rem; }
.site-footer .footer-widget-area h2.widget-title, .site-footer .widget-title { font-family: var(--eo-sans); font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--eo-rose-soft); }
.site-footer a { text-decoration: none; }
.site-footer .footer-widget-area a, .site-footer .footer-widget-area p { color: rgba(255, 250, 240, .82); }
.site-footer .footer-widget-area a:hover { color: var(--eo-rose-soft); }
.site-footer .footer-widget-area p { line-height: 1.9; font-size: .9rem; }
.site-footer .site-middle-footer-wrap { border-top: 1px solid rgba(255, 250, 240, .08); }

/* ---------- small screens ---------- */
@media (max-width: 781px) {
	.eo-collage { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.eo-collage > figure:first-child { grid-column: 1 / span 2; grid-row: auto; }
	.eo-hero.wp-block-cover { min-height: 78vh; }
}
