/*
Theme Name: Thornhill Advisory Group 2027
Theme URI: https://www.thornhillag.com/
Author: OpenAI
Description: A polished, editable Gutenberg theme for Thornhill Advisory Group with cinematic motion, optional hero video, WPForms, WP Mail SMTP and Yoast compatibility.
Version: 2.3.0
Text Domain: thornhillag
*/
:root{--navy:#071a2b;--navy2:#0d2941;--navy3:#123754;--gold:#c8a65a;--gold2:#e0c680;--cream:#f5f1e8;--paper:#fbfaf7;--ink:#102132;--muted:#65717c;--line:rgba(16,33,50,.14);--max:1200px;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit}.site-header{position:sticky;top:0;z-index:50;background:rgba(7,26,43,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.09)}.header-inner{max-width:var(--max);margin:auto;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;text-decoration:none;color:#fff}.brand img{max-height:64px;max-width:min(430px,48vw);width:auto;object-fit:contain}.bundled-logo{display:block}.wordmark{font-family:Georgia,"Times New Roman",serif;letter-spacing:.08em;font-size:20px}.wordmark small{display:block;font:600 9px/1.3 Inter,sans-serif;letter-spacing:.24em;color:var(--gold2);margin-top:3px}.nav-menu{display:flex;gap:30px;align-items:center;list-style:none;margin:0;padding:0}.nav-menu a{color:#eef3f6;text-decoration:none;font-size:13px;font-weight:650;letter-spacing:.04em}.nav-menu a:hover{color:var(--gold2)}.menu-toggle{display:none;background:none;border:0;color:white;font-size:25px}.site-main{overflow:hidden}.entry-content{margin:0}.hero{position:relative;min-height:78vh;display:flex;align-items:center;background:var(--navy);color:#fff;padding:120px max(28px,calc((100vw - var(--max))/2));isolation:isolate;overflow:hidden}.hero:before{content:"";position:absolute;inset:-30%;z-index:-2;background:radial-gradient(circle at 20% 25%,rgba(200,166,90,.18),transparent 26%),radial-gradient(circle at 78% 68%,rgba(36,100,145,.34),transparent 28%),linear-gradient(125deg,var(--navy),#0a2238 52%,#061522);animation:drift 16s ease-in-out infinite alternate}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to right,transparent,black 42%,black);opacity:.75}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;opacity:.34}.hero-video-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,26,43,.96) 0%,rgba(7,26,43,.78) 48%,rgba(7,26,43,.45) 100%);z-index:-2}.hero-inner{max-width:900px}.hero .eyebrow-block,.eyebrow-block{text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:800;color:var(--gold);margin:0 0 22px}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(48px,7vw,92px);line-height:.98;letter-spacing:-.035em;font-weight:400;max-width:950px;margin:0 0 30px}.hero-copy{font-size:clamp(18px,2vw,23px);line-height:1.55;color:#d8e1e7;max-width:760px;margin:0 0 38px}.wp-block-button__link{border-radius:999px!important;background:var(--gold)!important;color:var(--navy)!important;padding:15px 24px!important;font-weight:800!important;font-size:13px!important;letter-spacing:.035em;text-decoration:none;transition:.25s ease}.wp-block-button__link:hover{transform:translateY(-2px);background:var(--gold2)!important;box-shadow:0 12px 30px rgba(0,0,0,.18)}.section{padding:105px max(28px,calc((100vw - var(--max))/2))}.section.alt{background:var(--cream)}.section.dark{background:var(--navy);color:white}.section-title{font-family:Georgia,"Times New Roman",serif;font-size:clamp(36px,4.5vw,60px);font-weight:400;line-height:1.08;letter-spacing:-.025em;max-width:820px;margin:0 0 26px}.lead{font-size:20px;line-height:1.65;color:#4d5b67;max-width:820px}.dark .lead{color:#c9d4db}.service-grid{gap:20px;margin-top:55px;flex-wrap:wrap}.service-grid>.wp-block-column{flex-basis:calc(50% - 10px)!important;flex-grow:0}.service-card{height:100%;position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}.service-card:before{content:"";position:absolute;left:0;top:0;width:4px;height:0;background:var(--gold);transition:height .35s ease}.service-card:hover{transform:translateY(-8px);box-shadow:0 24px 60px rgba(7,26,43,.11);border-color:rgba(200,166,90,.5)}.service-card:hover:before{height:100%}.service-card h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:27px;line-height:1.2;margin-top:0}.service-card p{color:var(--muted)}.approach-grid{gap:70px;align-items:center}.principles-block{border-top:1px solid rgba(200,166,90,.45)}.principle-block{padding:25px 0;border-bottom:1px solid rgba(16,33,50,.13)}.principle-block h3{margin:0 0 6px;font-size:18px}.principle-block p{margin:0;color:var(--muted)}.signal-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.12);margin-top:55px;border:1px solid rgba(255,255,255,.12)}.signal{padding:34px;background:rgba(255,255,255,.035)}.signal strong{display:block;font-family:Georgia,serif;font-size:29px;font-weight:400;color:var(--gold2);margin-bottom:8px}.signal span{color:#cbd5dc;font-size:14px}.page-hero{padding:105px max(28px,calc((100vw - var(--max))/2)) 75px;background:var(--navy);color:white;position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(200,166,90,.18);border-radius:50%;right:-170px;top:-260px}.page-hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(44px,6vw,72px);line-height:1.05;margin:0}.page-body{max-width:900px;margin:auto;padding:85px 28px 110px}.page-body h2{font-family:Georgia,serif;font-size:38px;font-weight:400;line-height:1.2;margin:55px 0 18px}.page-body h2:first-child{margin-top:0}.page-body p,.page-body li{font-size:18px;color:#4c5965}.service-detail{padding:38px 0;border-bottom:1px solid var(--line)}.contact-grid{gap:65px}.form-shell{padding:36px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 60px rgba(7,26,43,.08)}.wpforms-container input,.wpforms-container textarea,.wpforms-container select{border:1px solid #cbd2d7!important;border-radius:8px!important;padding:12px!important}.wpforms-container button[type=submit]{background:var(--gold)!important;color:var(--navy)!important;border:0!important;border-radius:999px!important;padding:13px 24px!important;font-weight:800!important}.site-footer{background:#04111d;color:#aebbc4;padding:62px 28px 34px}.footer-inner{max-width:var(--max);margin:auto}.footer-top{display:flex;justify-content:space-between;gap:40px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.1)}.footer-brand{font-family:Georgia,serif;color:white;font-size:22px}.footer-links{display:flex;gap:24px;flex-wrap:wrap}.footer-links a{color:#c7d0d6;text-decoration:none;font-size:13px}.footer-bottom{display:flex;justify-content:space-between;gap:30px;padding-top:25px;font-size:12px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:none}@keyframes drift{from{transform:translate3d(-1%,0,0) scale(1)}to{transform:translate3d(2%,1%,0) scale(1.05)}}
@media(max-width:800px){.brand img{max-height:48px;max-width:68vw}.service-grid>.wp-block-column{flex-basis:100%!important;}.menu-toggle{display:block}.nav-menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);padding:22px 28px;flex-direction:column;align-items:flex-start}.nav-menu.open{display:flex}.hero{min-height:70vh;padding-top:95px;padding-bottom:95px}.section{padding-top:75px;padding-bottom:75px}.service-grid,.approach-grid{display:block}.wp-block-column{margin-bottom:18px}.signal-strip{grid-template-columns:1fr}.footer-top,.footer-bottom{display:block}.footer-links{margin-top:22px}.footer-bottom>*{margin:8px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero:before{animation:none}.reveal{opacity:1;transform:none;transition:none}.service-card,.wp-block-button__link{transition:none}}

.header-actions{display:flex;align-items:center;gap:24px}.header-cta{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border:1px solid rgba(224,198,128,.7);border-radius:999px;padding:10px 17px;color:var(--gold2);text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.045em;transition:.25s ease}.header-cta:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);transform:translateY(-1px)}.closing-cta{position:relative;background:linear-gradient(120deg,#071a2b,#0d2941);color:#fff;padding:82px max(28px,calc((100vw - var(--max))/2));overflow:hidden}.closing-cta:after{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(200,166,90,.2);border-radius:50%;right:-130px;top:-230px;box-shadow:0 0 0 70px rgba(200,166,90,.025),0 0 0 140px rgba(200,166,90,.018)}.closing-cta-inner{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:60px}.closing-cta h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(36px,4.5vw,58px);font-weight:400;line-height:1.06;letter-spacing:-.025em;max-width:760px;margin:0 0 18px}.closing-cta p:not(.eyebrow-block){font-size:18px;color:#c9d4db;margin:0;max-width:680px}.closing-cta-button{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;border-radius:999px;background:var(--gold);color:var(--navy);padding:15px 22px;text-decoration:none;font-size:13px;font-weight:800;letter-spacing:.035em;transition:.25s ease}.closing-cta-button span{font-size:19px;transition:transform .25s ease}.closing-cta-button:hover{background:var(--gold2);transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.2)}.closing-cta-button:hover span{transform:translateX(4px)}
@media(max-width:950px){.header-cta{display:none}.header-actions{gap:0}.closing-cta-inner{display:block}.closing-cta-button{margin-top:30px}}


/* 2.3 visual system */
.hero-inner{position:relative;z-index:2}.hero-visual{position:absolute;right:max(2vw,calc((100vw - var(--max))/2 - 30px));top:50%;width:min(44vw,610px);aspect-ratio:1;transform:translateY(-50%);z-index:0;opacity:.9;pointer-events:none}.orbit{position:absolute;inset:10%;border:1px solid rgba(224,198,128,.22);border-radius:50%;animation:orbit-spin 24s linear infinite}.orbit:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--gold2);box-shadow:0 0 22px rgba(224,198,128,.75);top:14%;left:12%}.orbit-b{inset:24%;border-color:rgba(122,177,214,.18);animation-duration:18s;animation-direction:reverse}.orbit-b:after{top:auto;left:auto;right:4%;bottom:27%;background:#91bfdc}.orbit-c{inset:37%;animation-duration:13s}.visual-core{position:absolute;inset:43%;border:1px solid rgba(224,198,128,.5);transform:rotate(45deg);box-shadow:0 0 70px rgba(200,166,90,.12)}.node{position:absolute;width:7px;height:7px;background:var(--gold);border-radius:50%;box-shadow:0 0 0 5px rgba(200,166,90,.07)}.n1{left:20%;top:32%}.n2{right:17%;top:39%}.n3{left:31%;bottom:18%}.n4{right:31%;bottom:27%}.n5{left:49%;top:12%}@keyframes orbit-spin{to{transform:rotate(360deg)}}
.service-icon{width:52px;height:52px;border:1px solid rgba(200,166,90,.42);border-radius:14px;margin-bottom:28px;position:relative;background:linear-gradient(145deg,rgba(200,166,90,.08),transparent)}.service-icon:before,.service-icon:after,.service-icon span:before,.service-icon span:after{content:"";position:absolute;display:block}.service-icon.finance:before{left:12px;right:12px;bottom:13px;height:1px;background:var(--gold)}.service-icon.finance:after{left:15px;bottom:14px;width:5px;height:12px;border:1px solid var(--gold);border-bottom:0;box-shadow:9px -7px 0 -1px var(--paper),9px -7px 0 0 var(--gold),18px -15px 0 -1px var(--paper),18px -15px 0 0 var(--gold)}.service-icon.markets:before{left:12px;right:11px;top:28px;height:1px;background:var(--gold);transform:rotate(-27deg)}.service-icon.markets:after{width:5px;height:5px;border-radius:50%;background:var(--gold);left:12px;top:31px;box-shadow:12px -8px 0 var(--gold),25px -14px 0 var(--gold)}.service-icon.ma:before{width:14px;height:14px;border:1px solid var(--gold);left:10px;top:18px;transform:rotate(45deg)}.service-icon.ma:after{width:14px;height:14px;border:1px solid var(--gold);right:10px;top:18px;transform:rotate(45deg)}.service-icon.ma span:before{width:12px;height:1px;background:var(--gold);left:20px;top:25px}.service-icon.governance:before{width:23px;height:27px;border:1px solid var(--gold);border-radius:50% 50% 44% 44%;left:13px;top:10px}.service-icon.governance:after{width:9px;height:5px;border-left:1px solid var(--gold);border-bottom:1px solid var(--gold);left:21px;top:22px;transform:rotate(-45deg)}
.transition-section{position:relative;overflow:hidden}.transition-section>*:not(.data-graphic){position:relative;z-index:2}.data-graphic{position:absolute;right:-4%;top:8%;width:46%;height:70%;opacity:.28;transform:skewY(-8deg);pointer-events:none}.data-graphic i{position:absolute;bottom:0;width:8%;border:1px solid rgba(224,198,128,.55);border-bottom:0;background:linear-gradient(to top,rgba(200,166,90,.12),transparent)}.data-graphic i:nth-child(1){left:3%;height:18%}.data-graphic i:nth-child(2){left:18%;height:31%}.data-graphic i:nth-child(3){left:33%;height:27%}.data-graphic i:nth-child(4){left:48%;height:49%}.data-graphic i:nth-child(5){left:63%;height:61%}.data-graphic i:nth-child(6){left:78%;height:84%}.data-graphic span{position:absolute;left:4%;right:8%;top:35%;height:1px;background:linear-gradient(90deg,transparent,var(--gold2),transparent);transform:rotate(-13deg);box-shadow:0 0 20px rgba(224,198,128,.25)}
.page-hero:before{content:"";position:absolute;right:7%;top:50%;width:240px;height:240px;transform:translateY(-50%) rotate(45deg);border:1px solid rgba(200,166,90,.15);box-shadow:0 0 0 34px rgba(200,166,90,.025),0 0 0 68px rgba(200,166,90,.018)}
.service-detail{position:relative;padding-left:78px}.service-detail:before{content:"";position:absolute;left:4px;top:46px;width:38px;height:38px;border:1px solid rgba(200,166,90,.55);transform:rotate(45deg)}.service-detail:after{content:"";position:absolute;left:23px;top:38px;width:1px;height:54px;background:rgba(200,166,90,.22)}
@media(max-width:1000px){.hero-visual{right:-22%;width:70vw;opacity:.48}.hero-inner{max-width:78%}}
@media(max-width:800px){.hero-visual{right:-48%;width:100vw;opacity:.35}.hero-inner{max-width:100%}.data-graphic{width:80%;right:-28%;opacity:.18}.service-detail{padding-left:0}.service-detail:before,.service-detail:after{display:none}.page-hero:before{right:-120px}}
@media(prefers-reduced-motion:reduce){.orbit{animation:none}}
