/* ============================================================
 *  OUR REFLECTION — Theme design system
 *  Aesthetic: editorial / refined luxury. Warm earth tones,
 *  Cormorant Garamond display + Lato body, atmospheric depth,
 *  gold hairlines, orchestrated page-load + scroll reveals.
 * ========================================================== */

/* ---- 1. Tokens ------------------------------------------- */
:root{
	/* Brand (also injected inline from plugin settings) */
	--or-plum:#4B1D3F;
	--or-terra:#C0654A;
	--or-gold:#C6A75C;
	--or-cream:#F6F1EB;
	--or-ink:#3B2A25;

	/* Derived */
	--or-plum-deep:#33122B;
	--or-plum-soft:#5d2a50;
	--or-terra-dark:#a4503a;
	--or-gold-soft:#dcc488;
	--or-cream-2:#efe7db;
	--or-paper:#fffdfa;
	--or-line:#e4d8c8;
	--or-line-strong:#d6c6b0;
	--or-ink-soft:#6f5d54;
	--or-ink-mute:#8c7d73;

	/* Type */
	--or-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;
	--or-body:"Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

	/* Rhythm */
	--or-shell:1140px;
	--or-shell-narrow:720px;
	--or-gutter:clamp(20px, 5vw, 48px);
	--or-section-y:clamp(64px, 9vw, 132px);
	--or-radius:10px;
	--or-radius-lg:18px;

	/* Shadow */
	--or-shadow-sm:0 2px 10px rgba(59,42,37,.06);
	--or-shadow:0 18px 50px -22px rgba(59,42,37,.32);
	--or-shadow-lg:0 40px 90px -40px rgba(51,18,43,.5);

	--or-ease:cubic-bezier(.22,.61,.36,1);
}

/* ---- 2. Base --------------------------------------------- */
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
	font-family:var(--or-body);
	font-weight:400;
	color:var(--or-ink);
	background:var(--or-cream);
	line-height:1.7;
	font-size:17px;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	overflow-x:hidden;
}

h1,h2,h3,h4,h5{
	font-family:var(--or-display);
	color:var(--or-plum);
	font-weight:600;
	line-height:1.08;
	margin:0 0 .5em;
	letter-spacing:.2px;
}

p{ margin:0 0 1.25em; }
a{ color:var(--or-terra-dark); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--or-plum); }
img{ max-width:100%; height:auto; display:block; }
strong{ font-weight:700; }
hr{ border:0; height:1px; background:var(--or-line); margin:2.5em 0; }

::selection{ background:var(--or-gold); color:var(--or-plum-deep); }

.or-shell{
	width:100%;
	max-width:var(--or-shell);
	margin-inline:auto;
	padding-inline:var(--or-gutter);
}
.or-shell-narrow{ max-width:var(--or-shell-narrow); }
.or-section{ padding-block:var(--or-section-y); position:relative; }

.screen-reader-text{
	position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
	clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.or-skip{
	position:absolute;left:-9999px;top:0;z-index:1000;background:var(--or-plum);color:#fff;
	padding:12px 20px;border-radius:0 0 8px 0;font-size:14px;
}
.or-skip:focus{ left:0; color:#fff; }

/* ---- 3. Shared display elements -------------------------- */
.or-eyebrow{
	display:inline-flex;align-items:center;gap:.7em;
	font-family:var(--or-body);
	font-size:12px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase;
	color:var(--or-terra-dark);
	margin:0 0 1.1rem;
}
.or-eyebrow::before{
	content:"";width:30px;height:1.5px;background:var(--or-gold);display:inline-block;
}
.or-eyebrow.is-center::before{ display:none; }
.or-eyebrow-light{ color:var(--or-gold-soft); }
.or-eyebrow-light::before{ background:var(--or-gold); }

.or-sec-title{
	font-size:clamp(2rem, 4.4vw, 3.25rem);
	line-height:1.04;
	margin:0 0 .55em;
	letter-spacing:.3px;
}
.or-sec-head{ max-width:640px; margin-bottom:clamp(36px,5vw,60px); }
.or-sec-head.is-center{ margin-inline:auto; text-align:center; }
.or-sec-head.is-center .or-eyebrow{ justify-content:center; }

.or-sec-index{
	display:block;
	font-family:var(--or-display);
	font-size:clamp(2.4rem,5vw,3.6rem);
	font-style:italic;
	font-weight:500;
	color:var(--or-gold);
	opacity:.85;
	line-height:1;
	margin-bottom:.2em;
}

.or-prose{ color:var(--or-ink-soft); font-size:1.06rem; }
.or-prose p:last-child{ margin-bottom:0; }
.or-prose a{ border-bottom:1px solid var(--or-gold); padding-bottom:1px; }

/* Editorial entry content (post/page body) */
.or-entry h2{ font-size:clamp(1.7rem,3.2vw,2.4rem); margin-top:1.6em; }
.or-entry h3{ font-size:clamp(1.4rem,2.4vw,1.8rem); margin-top:1.4em; }
.or-entry ul,.or-entry ol{ padding-left:1.3em; margin:0 0 1.4em; }
.or-entry li{ margin-bottom:.5em; }
.or-entry blockquote{
	margin:1.8em 0;padding:1.2em 1.6em;border-left:3px solid var(--or-gold);
	background:var(--or-cream-2);border-radius:0 var(--or-radius) var(--or-radius) 0;
	font-family:var(--or-display);font-size:1.5rem;font-style:italic;color:var(--or-plum);line-height:1.4;
}
.or-entry blockquote p{ margin:0; }
.or-entry img{ border-radius:var(--or-radius); }

.or-link-arrow{
	display:inline-flex;align-items:center;gap:.55em;
	font-family:var(--or-body);font-weight:700;font-size:.83rem;letter-spacing:1.6px;text-transform:uppercase;
	color:var(--or-plum);
}
.or-link-arrow span{ transition:transform .25s var(--or-ease); color:var(--or-terra); }
.or-link-arrow:hover{ color:var(--or-terra-dark); }
.or-link-arrow:hover span{ transform:translateX(6px); }

/* ---- 4. Buttons ------------------------------------------ */
.or-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:.5em;
	font-family:var(--or-body);font-weight:700;font-size:.82rem;letter-spacing:1.4px;text-transform:uppercase;
	color:#fff;background:var(--or-terra);
	padding:15px 30px;border:1px solid var(--or-terra);border-radius:50px;
	cursor:pointer;transition:transform .25s var(--or-ease), box-shadow .25s var(--or-ease), background .25s ease, color .2s ease;
	box-shadow:0 10px 24px -12px rgba(192,101,74,.7);
	-webkit-appearance:none;appearance:none;line-height:1;
}
.or-btn:hover{
	background:var(--or-terra-dark);border-color:var(--or-terra-dark);color:#fff;
	transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(164,80,58,.75);
}
.or-btn:active{ transform:translateY(0); }
.or-btn-lg{ padding:18px 38px;font-size:.86rem; }
.or-btn-sm{ padding:11px 22px;font-size:.74rem;letter-spacing:1.2px; }

.or-btn-ghost{
	background:transparent;color:var(--or-plum);border-color:var(--or-line-strong);box-shadow:none;
}
.or-btn-ghost:hover{
	background:var(--or-plum);border-color:var(--or-plum);color:#fff;box-shadow:0 16px 30px -14px rgba(75,29,63,.6);
}
/* ghost on dark surfaces */
.or-hero-actions .or-btn-ghost,
.or-cta-band .or-btn-ghost{
	color:#fff;border-color:rgba(255,255,255,.4);
}
.or-hero-actions .or-btn-ghost:hover,
.or-cta-band .or-btn-ghost:hover{
	background:#fff;border-color:#fff;color:var(--or-plum);
}

/* ---- 5. Brand mark / mirror motif ------------------------ */
.or-brand-mark{ display:inline-flex;line-height:0; }
.or-mirror{ display:block; }

/* ---- 6. Header ------------------------------------------- */
.or-site-header{
	position:fixed;top:0;left:0;right:0;z-index:90;
	padding-block:18px;
	transition:padding .35s var(--or-ease), background .35s ease, box-shadow .35s ease, border-color .35s ease;
	border-bottom:1px solid transparent;
}
/* transparent over dark hero */
.or-hero-dark .or-site-header{ background:transparent; }
.or-hero-dark .or-site-header .or-brand-name,
.or-hero-dark .or-site-header .or-menu > li > a{ color:#fff; }
.or-hero-dark .or-site-header .or-brand-tag{ color:var(--or-gold-soft); }
.or-hero-dark .or-site-header .or-nav-toggle-bars span{ background:#fff; }

/* solid state once scrolled (and always on non-hero pages) */
.or-site-header.is-stuck,
body:not(.or-hero-dark) .or-site-header{
	background:rgba(246,241,235,.92);
	-webkit-backdrop-filter:saturate(140%) blur(12px);
	backdrop-filter:saturate(140%) blur(12px);
	box-shadow:0 8px 30px -18px rgba(59,42,37,.4);
	border-bottom-color:var(--or-line);
	padding-block:11px;
}
.or-site-header.is-stuck .or-brand-name,
.or-site-header.is-stuck .or-menu > li > a,
body:not(.or-hero-dark) .or-site-header .or-brand-name,
body:not(.or-hero-dark) .or-site-header .or-menu > li > a{ color:var(--or-plum); }
.or-site-header.is-stuck .or-brand-tag,
body:not(.or-hero-dark) .or-site-header .or-brand-tag{ color:var(--or-ink-mute); }
.or-site-header.is-stuck .or-nav-toggle-bars span,
body:not(.or-hero-dark) .or-nav-toggle-bars span{ background:var(--or-plum); }

.or-header-inner{ display:flex;align-items:center;justify-content:space-between;gap:24px; }

.or-brand-link{ display:inline-flex;align-items:center;gap:13px; }
.or-brand .custom-logo{ width:48px;height:auto;border-radius:6px; }
.or-brand-mark .or-mirror{ width:44px;height:44px;transition:transform .5s var(--or-ease); }
.or-brand-link:hover .or-mirror{ transform:rotate(-4deg) scale(1.04); }
.or-brand-text{ display:flex;flex-direction:column;line-height:1.05; }
.or-brand-name{
	font-family:var(--or-display);font-weight:600;font-size:1.45rem;letter-spacing:.4px;transition:color .3s ease;
}
.or-brand-tag{
	font-family:var(--or-body);font-size:9.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
	transition:color .3s ease;margin-top:1px;
}

.or-primary-nav{ display:flex;align-items:center;gap:34px; }
.or-menu{ display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0; }
.or-menu li{ position:relative; }
.or-menu > li > a{
	font-family:var(--or-body);font-size:.8rem;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
	color:var(--or-plum);padding-block:6px;position:relative;transition:color .25s ease;
}
.or-menu > li > a::after{
	content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:var(--or-gold);
	transition:right .3s var(--or-ease);
}
.or-menu > li > a:hover::after,
.or-menu > li.current-menu-item > a::after{ right:0; }
.or-menu > li:hover > a,
.or-menu > li.current-menu-item > a{ color:var(--or-terra-dark); }

/* sub menus */
.or-menu .sub-menu{
	position:absolute;top:100%;left:-14px;min-width:200px;background:var(--or-paper);
	border:1px solid var(--or-line);border-radius:var(--or-radius);box-shadow:var(--or-shadow);
	padding:10px;list-style:none;margin:12px 0 0;opacity:0;visibility:hidden;transform:translateY(8px);
	transition:opacity .25s ease, transform .25s var(--or-ease), visibility .25s;
}
.or-menu li:hover > .sub-menu{ opacity:1;visibility:visible;transform:translateY(0); }
.or-menu .sub-menu a{
	display:block;padding:9px 14px;border-radius:7px;font-size:.85rem;color:var(--or-ink);
	letter-spacing:.3px;text-transform:none;font-weight:400;
}
.or-menu .sub-menu a:hover{ background:var(--or-cream-2);color:var(--or-plum); }

.or-nav-toggle{
	display:none;width:46px;height:46px;border:1px solid var(--or-line-strong);background:transparent;
	border-radius:10px;cursor:pointer;align-items:center;justify-content:center;
}
.or-nav-toggle-bars{ display:flex;flex-direction:column;gap:5px;width:22px; }
.or-nav-toggle-bars span{ height:2px;width:100%;background:var(--or-plum);border-radius:2px;transition:transform .3s var(--or-ease), opacity .2s ease; }
.or-nav-toggle[aria-expanded="true"] .or-nav-toggle-bars span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.or-nav-toggle[aria-expanded="true"] .or-nav-toggle-bars span:nth-child(2){ opacity:0; }
.or-nav-toggle[aria-expanded="true"] .or-nav-toggle-bars span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.or-main{ display:block; }

/* ---- 7. HERO --------------------------------------------- */
.or-hero{
	position:relative;isolation:isolate;overflow:hidden;
	min-height:clamp(620px, 96vh, 900px);
	display:flex;align-items:center;
	padding-top:140px;padding-bottom:90px;
	background:radial-gradient(120% 120% at 80% 0%, var(--or-plum-soft) 0%, var(--or-plum) 42%, var(--or-plum-deep) 100%);
	background-size:cover;background-position:center;
	color:#fff;
}
/* If a hero image is set, lay the plum wash over it */
.or-hero[style*="background-image"]::after{
	content:"";position:absolute;inset:0;z-index:-1;
	background:linear-gradient(105deg, rgba(51,18,43,.94) 0%, rgba(75,29,63,.82) 48%, rgba(51,18,43,.55) 100%);
}
.or-hero-veil{
	position:absolute;inset:0;z-index:-1;pointer-events:none;
	background:
		radial-gradient(40% 50% at 12% 88%, rgba(192,101,74,.28), transparent 70%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
	background-blend-mode:overlay;
	opacity:.5;mix-blend-mode:soft-light;
}
.or-hero-orb{ position:absolute;border-radius:50%;filter:blur(60px);z-index:-1;opacity:.55;pointer-events:none; }
.or-hero-orb-1{ width:520px;height:520px;top:-160px;right:-120px;background:radial-gradient(circle, rgba(198,167,92,.55), transparent 65%); }
.or-hero-orb-2{ width:420px;height:420px;bottom:-180px;left:-80px;background:radial-gradient(circle, rgba(192,101,74,.5), transparent 65%);animation:orFloat 14s ease-in-out infinite; }
@keyframes orFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-26px); } }

.or-hero-inner{
	position:relative;z-index:1;width:100%;
	display:grid;grid-template-columns:1.35fr .65fr;gap:60px;align-items:center;
}
.or-hero-copy{ max-width:680px; }
.or-eyebrow.or-eyebrow-light{ color:var(--or-gold-soft); }
.or-hero-title{
	color:#fff;
	font-size:clamp(3.1rem, 8vw, 6.4rem);
	font-weight:600;
	line-height:.98;
	letter-spacing:-.5px;
	margin:0 0 .35em;
	text-wrap:balance;
}
.or-hero-title em{ font-style:italic;color:var(--or-gold-soft); }
.or-hero-intro{
	font-size:clamp(1.1rem, 1.7vw, 1.35rem);
	line-height:1.65;
	color:rgba(255,255,255,.86);
	max-width:34em;
	margin:0 0 2.2em;
	font-weight:300;
}
.or-hero-actions{ display:flex;flex-wrap:wrap;gap:16px; }

.or-hero-emblem{ position:relative;justify-self:center;width:230px;height:230px;display:grid;place-items:center; }
.or-hero-emblem-ring{
	position:absolute;inset:0;border:1px solid rgba(198,167,92,.5);border-radius:50%;
}
.or-hero-emblem-ring::before{
	content:"";position:absolute;inset:-22px;border:1px dashed rgba(198,167,92,.32);border-radius:50%;
	animation:orSpin 40s linear infinite;
}
@keyframes orSpin{ to{ transform:rotate(360deg); } }
.or-hero-emblem-mark{
	width:150px;height:150px;display:grid;place-items:center;border-radius:50%;
	background:radial-gradient(circle at 50% 35%, rgba(255,255,255,.12), rgba(255,255,255,.03));
	box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), 0 30px 60px -30px rgba(0,0,0,.6);
}
.or-hero-emblem-mark .or-mirror{ width:88px;height:88px; }

.or-scroll-cue{
	position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
	width:26px;height:42px;border:1.5px solid rgba(255,255,255,.45);border-radius:14px;
	display:flex;justify-content:center;padding-top:7px;
}
.or-scroll-cue span{ width:4px;height:9px;border-radius:3px;background:var(--or-gold-soft);animation:orScroll 1.8s ease-in-out infinite; }
@keyframes orScroll{ 0%{ opacity:0;transform:translateY(-4px);} 40%{opacity:1;} 80%{opacity:0;transform:translateY(12px);} 100%{opacity:0;} }

/* ---- 8. Split sections (intro / about) ------------------- */
.or-split{ display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,80px);align-items:center; }
.or-split-reverse .or-split-media{ order:2; }
.or-split-copy .or-sec-index{ margin-bottom:.1em; }
.or-split-copy .or-link-arrow{ margin-top:1.4em; }

.or-frame{ position:relative;border-radius:var(--or-radius-lg);overflow:hidden;box-shadow:var(--or-shadow-lg); }
.or-frame::after{
	content:"";position:absolute;inset:0;border:1px solid rgba(198,167,92,.55);border-radius:var(--or-radius-lg);
	pointer-events:none;mix-blend-mode:overlay;
}
.or-frame img{ width:100%;height:100%;object-fit:cover;display:block; }
.or-frame-empty{
	aspect-ratio:4/5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
	background:
		linear-gradient(135deg, var(--or-cream-2), #e7dccb),
		var(--or-cream-2);
	box-shadow:var(--or-shadow);color:var(--or-ink-mute);text-align:center;padding:30px;
}
.or-frame-empty::after{ border-color:var(--or-line-strong);mix-blend-mode:normal; }
.or-frame-mark .or-mirror{ width:84px;height:84px;opacity:.9; }
.or-frame-note{ font-size:.78rem;letter-spacing:.6px;max-width:200px;line-height:1.5; }

/* ---- 9. Services ----------------------------------------- */
.or-services{ background:var(--or-paper); }
.or-services-head{ display:flex;flex-direction:column;align-items:flex-start;margin-bottom:clamp(36px,5vw,56px); }
.or-services-head .or-sec-head{ margin-bottom:0; }
.or-cards{ display:grid;grid-template-columns:repeat(3,1fr);gap:26px; }
.or-card{
	position:relative;background:var(--or-cream);border:1px solid var(--or-line);border-radius:var(--or-radius-lg);
	padding:40px 34px 36px;overflow:hidden;
	transition:transform .4s var(--or-ease), box-shadow .4s var(--or-ease), border-color .3s ease;
}
.or-card::before{
	content:"";position:absolute;top:0;left:0;right:0;height:3px;
	background:linear-gradient(90deg, var(--or-gold), var(--or-terra));
	transform:scaleX(0);transform-origin:left;transition:transform .45s var(--or-ease);
}
.or-card:hover{ transform:translateY(-7px);box-shadow:var(--or-shadow);border-color:transparent; }
.or-card:hover::before{ transform:scaleX(1); }
.or-card-num{
	font-family:var(--or-display);font-style:italic;font-size:1.7rem;color:var(--or-gold);display:block;margin-bottom:.5em;
}
.or-card-title{ font-size:1.55rem;margin-bottom:.5em; }
.or-card-body{ color:var(--or-ink-soft);font-size:1rem;margin:0; }

.or-services-cta{ display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:clamp(40px,5vw,56px); }

/* ---- 10. Pull-quote band --------------------------------- */
.or-quoteband{
	position:relative;overflow:hidden;color:#fff;
	padding-block:clamp(80px,11vw,150px);
	background:linear-gradient(135deg, var(--or-plum) 0%, var(--or-plum-deep) 100%);
}
.or-quoteband-orn{
	position:absolute;inset:0;pointer-events:none;opacity:.5;
	background:
		radial-gradient(50% 60% at 88% 12%, rgba(198,167,92,.3), transparent 70%),
		radial-gradient(40% 50% at 6% 92%, rgba(192,101,74,.28), transparent 70%);
}
.or-bigquote{ position:relative;max-width:980px;margin:0 auto;text-align:center; }
.or-quote-mark{
	display:block;font-family:var(--or-display);font-size:6rem;line-height:.4;color:var(--or-gold);opacity:.55;margin-bottom:.1em;
}
.or-bigquote p{
	font-family:var(--or-display);font-style:italic;font-weight:500;
	font-size:clamp(1.7rem, 3.8vw, 3rem);line-height:1.32;color:#fff;margin:0 0 .7em;text-wrap:balance;
}
.or-bigquote cite{
	font-family:var(--or-body);font-style:normal;font-size:.8rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--or-gold-soft);
}

/* ---- 11. Testimonials ------------------------------------ */
.or-testimonials{ background:var(--or-cream); }
.or-testi-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:26px; }
.or-testi{
	background:var(--or-paper);border:1px solid var(--or-line);border-radius:var(--or-radius-lg);
	padding:36px 32px;margin:0;position:relative;
	transition:transform .4s var(--or-ease), box-shadow .4s var(--or-ease);
}
.or-testi::before{
	content:"\201C";position:absolute;top:8px;right:22px;font-family:var(--or-display);font-size:4.2rem;color:var(--or-gold);opacity:.3;line-height:1;
}
.or-testi:hover{ transform:translateY(-5px);box-shadow:var(--or-shadow); }
.or-testi blockquote{
	margin:0 0 22px;font-family:var(--or-display);font-style:italic;font-size:1.32rem;line-height:1.5;color:var(--or-plum);
}
.or-testi figcaption{ display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--or-line);padding-top:16px; }
.or-testi-name{ font-weight:700;font-size:.92rem;letter-spacing:.4px;color:var(--or-ink); }
.or-testi-role{ font-size:.8rem;color:var(--or-ink-mute);letter-spacing:.4px; }

/* ---- 12. Newsletter band --------------------------------- */
.or-newsband{ background:var(--or-paper);border-top:1px solid var(--or-line); }
.or-newsband-inner{
	display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:center;
	background:linear-gradient(135deg, var(--or-cream-2), var(--or-cream));
	border:1px solid var(--or-line);border-radius:var(--or-radius-lg);
	padding:clamp(32px,5vw,56px);position:relative;overflow:hidden;
}
.or-newsband-inner::before{
	content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-90px;top:-90px;
	background:radial-gradient(circle, rgba(198,167,92,.22), transparent 70%);
}
.or-newsband-copy{ position:relative; }
.or-newsband-copy .or-sec-title{ font-size:clamp(1.8rem,3.4vw,2.6rem); }
.or-newsband-form{ position:relative; }

/* ---- 13. Generic page hero ------------------------------- */
.or-page-hero{
	position:relative;isolation:isolate;overflow:hidden;color:#fff;
	padding-top:clamp(140px,18vh,200px);padding-bottom:clamp(54px,8vw,90px);
	background:radial-gradient(120% 130% at 78% 0%, var(--or-plum-soft), var(--or-plum) 50%, var(--or-plum-deep));
}
.or-page-hero-tall{ padding-bottom:clamp(70px,10vw,120px); }
.or-page-hero-veil{
	position:absolute;inset:0;z-index:-1;opacity:.4;mix-blend-mode:soft-light;
	background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
}
.or-page-hero-orb{
	position:absolute;width:460px;height:460px;border-radius:50%;right:-130px;top:-150px;z-index:-1;
	background:radial-gradient(circle, rgba(198,167,92,.4), transparent 65%);filter:blur(50px);
}
.or-page-title{
	color:#fff;font-size:clamp(2.6rem,6vw,4.6rem);line-height:1;letter-spacing:-.3px;margin:0;text-wrap:balance;
}
.or-page-title span{ color:var(--or-gold-soft);font-style:italic; }
.or-page-lede{
	margin:1.1em 0 0;max-width:40em;font-size:clamp(1.05rem,1.6vw,1.28rem);font-weight:300;line-height:1.6;color:rgba(255,255,255,.85);
}
.or-page-thumb{ margin-bottom:clamp(32px,5vw,52px); }
.or-page-thumb img{ width:100%; }

/* ---- 14. Values (about) ---------------------------------- */
.or-values{ background:var(--or-paper); }
.or-values-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:24px; }
.or-value{
	padding:34px 30px;border-radius:var(--or-radius-lg);background:var(--or-cream);
	border:1px solid var(--or-line);border-top:3px solid var(--or-gold);
}
.or-value-num{ font-family:var(--or-display);font-style:italic;font-size:1.5rem;color:var(--or-terra);display:block;margin-bottom:.4em; }
.or-value-title{ font-size:1.45rem;margin-bottom:.35em; }
.or-value-body{ color:var(--or-ink-soft);font-size:.98rem;margin:0; }

/* ---- 15. CTA band ---------------------------------------- */
.or-cta-band{
	position:relative;overflow:hidden;color:#fff;text-align:center;
	padding-block:clamp(70px,10vw,120px);
	background:linear-gradient(120deg, var(--or-terra) 0%, #9c4734 60%, var(--or-plum) 130%);
}
.or-cta-band::before{
	content:"";position:absolute;inset:0;opacity:.35;
	background:radial-gradient(50% 80% at 80% 0%, rgba(198,167,92,.5), transparent 70%);
}
.or-cta-inner{ position:relative;max-width:760px; }
.or-cta-title{ color:#fff;font-size:clamp(2rem,4.6vw,3.2rem);line-height:1.08;margin:0 0 1.2em;text-wrap:balance; }
.or-cta-actions{ display:flex;flex-wrap:wrap;gap:16px;justify-content:center; }
.or-cta-band .or-btn{ background:#fff;color:var(--or-plum);border-color:#fff;box-shadow:0 14px 30px -14px rgba(0,0,0,.4); }
.or-cta-band .or-btn:hover{ background:var(--or-cream);border-color:var(--or-cream);transform:translateY(-2px); }

/* ---- 16. Form cards (contact / booking / quote) ---------- */
.or-formcard{
	background:var(--or-paper);border:1px solid var(--or-line);border-radius:var(--or-radius-lg);
	padding:clamp(28px,4vw,46px);box-shadow:var(--or-shadow);
}
.or-formcard-title{ font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:1.1em;padding-bottom:.55em;border-bottom:1px solid var(--or-line); }

/* Contact layout */
.or-contact-grid{ display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,4vw,52px);align-items:start; }
.or-contact-card{
	background:linear-gradient(160deg, var(--or-plum), var(--or-plum-deep));color:#fff;
	border-radius:var(--or-radius-lg);padding:clamp(30px,3.5vw,42px);box-shadow:var(--or-shadow-lg);position:relative;overflow:hidden;
}
.or-contact-card::before{ content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-80px;bottom:-80px;background:radial-gradient(circle,rgba(198,167,92,.3),transparent 70%); }
.or-contact-card-title{ color:#fff;font-size:1.7rem;margin-bottom:1.1em;position:relative; }
.or-contact-list{ list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:20px;position:relative; }
.or-contact-list li{ display:flex;flex-direction:column;gap:3px; }
.or-contact-label{ font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--or-gold-soft); }
.or-contact-list a,.or-contact-list span{ color:#fff;font-size:1.05rem;font-family:var(--or-display);font-style:italic; }
.or-contact-list a:hover{ color:var(--or-gold-soft); }
.or-contact-divider{ height:1px;background:rgba(255,255,255,.18);margin:26px 0;position:relative; }
.or-contact-note{ color:rgba(255,255,255,.8);font-size:.96rem;position:relative; }
.or-contact-aside .or-link-arrow{ color:var(--or-gold-soft);position:relative; }
.or-contact-aside .or-link-arrow span{ color:#fff; }
.or-contact-aside .or-link-arrow:hover{ color:#fff; }

/* Booking layout */
.or-booking-grid{ display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,4vw,52px);align-items:start; }
.or-steps{ list-style:none;margin:0 0 30px;padding:0;display:flex;flex-direction:column;gap:26px; }
.or-steps li{ display:flex;gap:18px;align-items:flex-start; }
.or-step-num{
	flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
	background:var(--or-cream-2);border:1px solid var(--or-gold);color:var(--or-plum);
	font-family:var(--or-display);font-style:italic;font-size:1.3rem;font-weight:600;
}
.or-steps h3{ font-size:1.25rem;margin:0 0 .25em; }
.or-steps p{ margin:0;color:var(--or-ink-soft);font-size:.96rem; }
.or-booking-reassure{
	display:flex;gap:16px;align-items:center;padding:24px;border-radius:var(--or-radius-lg);
	background:var(--or-cream-2);border:1px solid var(--or-line);
}
.or-booking-reassure .or-mirror{ width:46px;height:46px;flex:none; }
.or-booking-reassure p{ margin:0;font-family:var(--or-display);font-style:italic;font-size:1.12rem;color:var(--or-plum);line-height:1.4; }

/* Quote layout */
.or-quote-grid{ display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,4vw,52px);align-items:start; }
.or-quote-panel{
	background:linear-gradient(160deg, var(--or-cream-2), var(--or-cream));border:1px solid var(--or-line);
	border-radius:var(--or-radius-lg);padding:clamp(28px,3.5vw,40px);
}
.or-quote-panel-title{ font-size:1.6rem;margin-bottom:.6em; }
.or-ticks{ list-style:none;margin:1.4em 0 0;padding:0;display:flex;flex-direction:column;gap:14px; }
.or-ticks li{ position:relative;padding-left:32px;color:var(--or-ink-soft);font-size:.98rem; }
.or-ticks li::before{
	content:"";position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;
	background:var(--or-gold);
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/16px no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/16px no-repeat;
}

/* Tighten plugin forms inside theme cards */
.or-formcard .orc-form .orc-btn,
.or-newsband .orc-form .orc-btn{ border-radius:50px;letter-spacing:1.4px; }

/* ---- 17. Blog / archive ---------------------------------- */
.or-post-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:30px; }
@media(max-width:900px){ .or-post-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .or-post-grid{ grid-template-columns:1fr; } }
.or-post-card{
	background:var(--or-paper);border:1px solid var(--or-line);border-radius:var(--or-radius-lg);overflow:hidden;
	display:flex;flex-direction:column;transition:transform .4s var(--or-ease), box-shadow .4s var(--or-ease);
}
.or-post-card:hover{ transform:translateY(-6px);box-shadow:var(--or-shadow); }
.or-post-thumb{ display:block;aspect-ratio:16/10;overflow:hidden; }
.or-post-thumb img{ width:100%;height:100%;object-fit:cover;transition:transform .6s var(--or-ease); }
.or-post-card:hover .or-post-thumb img{ transform:scale(1.05); }
.or-post-body{ padding:28px 26px 30px;display:flex;flex-direction:column;flex:1; }
.or-post-date{ font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--or-terra-dark);margin-bottom:.8em; }
.or-post-title{ font-size:1.5rem;line-height:1.15;margin-bottom:.5em; }
.or-post-title a{ color:var(--or-plum); }
.or-post-title a:hover{ color:var(--or-terra-dark); }
.or-post-excerpt{ color:var(--or-ink-soft);font-size:.97rem;margin-bottom:1.4em;flex:1; }

.or-pagination{ margin-top:clamp(40px,6vw,64px); }
.or-pagination .nav-links{ display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center; }
.or-pagination .page-numbers{
	display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border-radius:8px;
	border:1px solid var(--or-line);color:var(--or-plum);font-weight:700;font-size:.9rem;transition:all .2s ease;
}
.or-pagination .page-numbers:hover{ border-color:var(--or-terra);color:var(--or-terra-dark); }
.or-pagination .page-numbers.current{ background:var(--or-plum);border-color:var(--or-plum);color:#fff; }

/* ---- 18. Single extras ----------------------------------- */
.or-single-meta{ margin:1em 0 0; }
.or-single-meta a{ color:var(--or-gold-soft);font-weight:700;font-size:.78rem;letter-spacing:1.5px;text-transform:uppercase; }
.or-single-footer{ margin-top:clamp(36px,5vw,56px);padding-top:30px;border-top:1px solid var(--or-line); }
.or-tags{ display:block;margin-bottom:24px;font-size:.85rem;color:var(--or-ink-mute); }
.or-tags a{ color:var(--or-terra-dark); }
.or-postnav{ display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap; }
.or-postnav a{ font-family:var(--or-display);font-style:italic;font-size:1.2rem;color:var(--or-plum); }
.or-postnav a:hover{ color:var(--or-terra-dark); }
.or-postnav-next{ margin-left:auto;text-align:right; }

.or-page-links{ margin-top:2em;font-weight:700;font-size:.85rem;letter-spacing:1px; }
.or-page-links a{ display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--or-line);border-radius:7px;margin:0 3px; }

.or-comments-wrap{ padding-top:0; }
.or-comments-wrap .comment-list{ list-style:none;padding:0; }
.or-comments-wrap .comment-respond{ margin-top:30px; }

/* ---- 19. Footer ------------------------------------------ */
.or-site-footer{ position:relative;overflow:hidden;background:var(--or-plum-deep);color:rgba(255,255,255,.78);padding-top:clamp(64px,8vw,96px); }
.or-footer-glow{ position:absolute;inset:0;pointer-events:none;opacity:.6;background:radial-gradient(50% 60% at 85% 0%, rgba(198,167,92,.18), transparent 70%),radial-gradient(40% 50% at 5% 100%, rgba(192,101,74,.18), transparent 70%); }
.or-footer-grid{ position:relative;display:grid;grid-template-columns:1.4fr .9fr 1fr 1.4fr;gap:clamp(28px,4vw,52px);padding-bottom:clamp(48px,6vw,72px); }
.or-footer-brand .or-mirror{ width:48px;height:48px;margin-bottom:14px; }
.or-footer-name{ color:#fff;font-size:1.7rem;margin:0 0 .15em; }
.or-footer-tag{ font-size:10px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase;color:var(--or-gold-soft);margin:0 0 1.2em; }
.or-footer-blurb{ font-size:.95rem;line-height:1.6;color:rgba(255,255,255,.7);max-width:30ch;margin:0; }
.or-footer-h{ color:#fff;font-family:var(--or-body);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin:0 0 1.4em; }
.or-footer-menu,.or-footer-contact{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px; }
.or-footer-menu a,.or-footer-contact a{ color:rgba(255,255,255,.78);font-size:.96rem; }
.or-footer-menu a:hover,.or-footer-contact a:hover{ color:var(--or-gold-soft); }
.or-footer-contact li{ font-size:.94rem;line-height:1.5; }
.or-footer-news .or-footer-h{ margin-bottom:1em; }

.or-footer-bottom{
	position:relative;border-top:1px solid rgba(255,255,255,.12);padding-block:24px;
	display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;
}
.or-copyright,.or-credit{ margin:0;font-size:.82rem;color:rgba(255,255,255,.6);letter-spacing:.3px; }
.or-credit a{ color:var(--or-gold-soft);font-weight:700; }
.or-credit a:hover{ color:#fff; }

/* Footer newsletter form tuning (plugin .orc-newsletter) */
.or-footer-news .orc-newsletter{ --orc-ink:#fff; }
.or-footer-news .orc-nl-row{ flex-direction:column;align-items:stretch;gap:10px; }
.or-footer-news .orc-newsletter input[type=email]{ background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff; }
.or-footer-news .orc-newsletter input[type=email]::placeholder{ color:rgba(255,255,255,.5); }
.or-footer-news .orc-newsletter .orc-message{ color:var(--or-gold-soft); }

/* ---- 20. Reveal animations ------------------------------- */
[data-reveal]{ opacity:0;transform:translateY(22px);transition:opacity .8s ease, transform .8s var(--or-ease); will-change:opacity,transform; }
[data-reveal].is-in{ opacity:1;transform:none; }
[data-reveal-delay="1"]{ transition-delay:.09s; }
[data-reveal-delay="2"]{ transition-delay:.18s; }
[data-reveal-delay="3"]{ transition-delay:.27s; }
[data-reveal-delay="4"]{ transition-delay:.36s; }
[data-reveal-delay="5"]{ transition-delay:.45s; }
[data-reveal-delay="6"]{ transition-delay:.54s; }

@media (prefers-reduced-motion: reduce){
	[data-reveal]{ opacity:1!important;transform:none!important;transition:none!important; }
	.or-hero-orb-2,.or-hero-emblem-ring::before,.or-scroll-cue span{ animation:none!important; }
}

/* ---- 21. Responsive -------------------------------------- */
@media(max-width:1040px){
	.or-cards,.or-testi-grid,.or-values-grid,.or-post-grid{ grid-template-columns:repeat(2,1fr); }
	.or-hero-inner{ grid-template-columns:1fr;gap:40px; }
	.or-hero-emblem{ display:none; }
}

@media(max-width:880px){
	.or-nav-toggle{ display:inline-flex; }
	.or-primary-nav{
		position:fixed;inset:0 0 0 auto;width:min(86vw,360px);z-index:95;
		background:var(--or-plum-deep);
		flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;
		padding:108px 34px 40px;
		transform:translateX(100%);transition:transform .42s var(--or-ease);
		box-shadow:-30px 0 60px -30px rgba(0,0,0,.6);overflow-y:auto;
	}
	.or-primary-nav.is-open{ transform:translateX(0); }
	.or-menu{ flex-direction:column;align-items:flex-start;gap:4px;width:100%; }
	.or-menu > li{ width:100%;border-bottom:1px solid rgba(255,255,255,.1); }
	.or-menu > li > a{ display:block;padding:15px 0;color:#fff!important;font-size:.95rem; }
	.or-menu > li > a::after{ display:none; }
	.or-menu .sub-menu{ position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;box-shadow:none;padding:0 0 8px 14px;margin:0; }
	.or-menu .sub-menu a{ color:rgba(255,255,255,.7); }
	.or-nav-cta{ margin-top:20px;width:100%; }
	body.or-nav-open{ overflow:hidden; }
	/* nav backdrop */
	.or-nav-backdrop{ position:fixed;inset:0;z-index:94;background:rgba(20,8,16,.5);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s; }
	.or-nav-backdrop.is-on{ opacity:1;visibility:visible; }
}

@media(max-width:760px){
	body{ font-size:16px; }
	.or-split,.or-newsband-inner,.or-contact-grid,.or-booking-grid,.or-quote-grid{ grid-template-columns:1fr; }
	.or-split-reverse .or-split-media{ order:0; }
	.or-cards,.or-testi-grid,.or-values-grid{ grid-template-columns:1fr; }
	.or-frame-empty{ aspect-ratio:3/2; }
	.or-contact-grid .or-contact-aside{ order:2; }
	.or-postnav-next{ text-align:left; }
}

@media(max-width:480px){
	.or-btn{ width:100%; }
	.or-hero-actions,.or-cta-actions,.or-services-cta{ width:100%; }
	.or-services-cta{ flex-direction:column;align-items:flex-start; }
}
