/* TLDsKing Royal V4: polished, accessible implementation of the approved Prism concept. */
:root { --v4-ink:#211334; --v4-cream:#fdfaf6; --v4-purple:#4b326e; --v4-gold:#d9a568; --v4-ease:cubic-bezier(.16,1,.3,1); }
html { scroll-behavior:smooth; }
body { font-family:"DM Sans", Inter, system-ui, sans-serif; }
.site-header { position:relative; top:auto; z-index:50; background:#fffaf8; border:0; border-bottom-left-radius:24px; border-bottom-right-radius:24px; box-shadow:0 12px 32px rgba(24,12,44,.075); }
.site-header.is-scrolled { background:#fffaf8; box-shadow:0 12px 32px rgba(24,12,44,.075); }
.site-header .container { width:min(calc(100% - 72px), 1500px); }
.site-header .header-inner { min-height:94px; display:flex; align-items:center; flex-wrap:nowrap; justify-content:space-between; gap:20px; }
.site-header .wordmark { flex-shrink:0; gap:12px; font-family:"Manrope",sans-serif; }
.site-header .brand-symbol { display:block; width:64px; height:64px; max-width:64px; flex:0 0 64px; border-radius:0; filter:drop-shadow(0 7px 9px rgba(62,32,83,.15)); transition:transform .55s var(--v4-ease); }
.site-header .wordmark:hover .brand-symbol { transform:rotate(-5deg) scale(1.07); }
.site-header .brand-name { font-size:clamp(23px,2.2vw,32px); font-weight:800; letter-spacing:-.068em; color:#241439; }
.site-header .wordmark-king { color:#aa7546; }
.site-header .wordmark-dot { display:none; }
.site-header .primary-nav { display:flex; align-items:center; gap:clamp(12px,1.4vw,25px); }
.site-header .nav-link { color:#281b40; font-family:"Manrope",sans-serif; font-weight:700; font-size:clamp(12px,1.04vw,15px); line-height:1.2; letter-spacing:-.028em; white-space:nowrap; padding:12px 0; transform:none; }
.site-header .nav-link:hover,.site-header .nav-link.is-current { color:#9c6c3d; transform:translateY(-1px); }
.site-header .nav-link::after { bottom:3px; height:2px; background:#c28d55; transform-origin:left; }
.site-header .nav-actions { display:flex; flex:0 0 auto; flex-wrap:nowrap; align-items:center; gap:16px; margin-left:0; }
.site-header .nav-actions::before { content:""; width:1px; height:29px; background:#dad2dd; flex:0 0 1px; }
.site-header .nav-cart { width:36px!important; height:36px!important; min-width:36px; flex:0 0 36px; display:inline-flex; justify-content:center; align-items:center; padding:0!important; margin:0; background:transparent!important; box-shadow:none!important; border:none!important; color:#2c1d42; border-radius:9px; transition:transform .25s var(--v4-ease),color .2s ease; }
.site-header .nav-cart svg { display:block!important; width:20px!important; height:20px!important; min-width:20px; max-width:20px; min-height:20px; max-height:20px; stroke:currentColor!important; fill:none!important; stroke-width:1.8!important; }
.site-header .nav-cart svg * { fill:none!important; stroke:currentColor!important; vector-effect:non-scaling-stroke; }
.site-header .nav-cart:hover { color:#b37a40; transform:translateY(-2px); }
.site-header .button-nav { min-width:150px; min-height:48px; padding:0 21px; background:linear-gradient(128deg,#dab17b,#b47a46); border:1px solid #e2bf8d; border-radius:30px; color:#fff; font-family:"Manrope",sans-serif; font-size:14px; font-weight:800; letter-spacing:-.02em; box-shadow:0 8px 18px rgba(132,84,47,.12); transition:transform .3s var(--v4-ease),background .3s ease,box-shadow .3s ease; }
.site-header .button-nav:hover { color:#fff; background:linear-gradient(128deg,#c39055,#926038); box-shadow:0 13px 24px rgba(132,84,47,.2); transform:translateY(-2px); }
.site-header .button-nav span { margin-left:5px; font-size:20px; font-weight:400; }
.site-header .nav-login { margin-left:6px; }
/* Hero */
.v4-hero { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse 70% 70% at 95% 38%, rgba(187,137,205,.58),transparent 73%),radial-gradient(ellipse at 53% 88%,rgba(148,85,158,.52),transparent 61%),linear-gradient(116deg,#1e1038 2%,#3c215e 51%,#67417e 83%,#ad7f9f 100%); color:#fff; margin-top:-20px; padding-top:20px; }
.v4-hero::before { content:""; position:absolute; pointer-events:none; inset:0; background:radial-gradient(ellipse 110% 50% at 83% 115%,rgba(250,184,145,.28),transparent 65%),linear-gradient(180deg,transparent 44%,rgba(16,9,34,.32)); }
.v4-horizon { position:absolute; z-index:-1; bottom:0; left:0; width:100%; height:28%; background:radial-gradient(ellipse 80% 100% at 74% 95%, rgba(151,106,138,.3), transparent 80%); pointer-events:none; }
.v4-stars { position:absolute; width:320px; height:320px; border:1px solid rgba(238,199,143,.18); border-radius:50%; pointer-events:none; }
.v4-stars-one { right:14%; top:2%; transform:rotateX(68deg); }
.v4-stars-two { right:-4%; bottom:9%; opacity:.4; }
.v4-hero .container { width:min(calc(100% - 96px), 1500px); }
.v4-hero-main { min-height:630px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(440px,.9fr); gap:clamp(16px,3vw,60px); align-items:center; padding-top:46px; padding-bottom:20px; }
.v4-hero-copy { position:relative; z-index:6; padding-top:18px; max-width:810px; }
.v4-eyebrow { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 30px; color:#eee0f3; font-size:12px; font-weight:700; letter-spacing:.32em; line-height:1.5; }
.v4-eyebrow span { color:#e3b985; }
.v4-hero h1 { color:#fff; font-family:"DM Sans",sans-serif; font-size:clamp(58px,5.7vw,94px); font-weight:500; line-height:1.02; letter-spacing:-.075em; margin:0 0 24px; max-width:850px; text-wrap:balance; }
.v4-hero h1 em { font-family:Georgia,serif; font-size:.93em; font-style:italic; color:#efc691; font-weight:400; white-space:nowrap; letter-spacing:-.06em; }
.v4-hero-description { color:#e6dce9; font-size:clamp(16px,1.48vw,21px); line-height:1.65; font-weight:400; max-width:680px; margin:0 0 32px; }
.v4-search { width:min(100%,760px); min-height:70px; display:flex; align-items:center; gap:16px; background:#fffaf7; border:2px solid rgba(255,255,255,.5); border-radius:23px; padding:7px; box-shadow:0 22px 46px rgba(22,8,40,.22); transition:box-shadow .35s ease,transform .35s var(--v4-ease); }
.v4-search:focus-within { box-shadow:0 24px 64px rgba(22,8,40,.32),0 0 0 4px rgba(238,191,128,.22); transform:translateY(-2px); }
.v4-search-icon { flex:0 0 23px; margin-left:16px; color:#422b59; }
.v4-search input { flex:1 1 0; width:20%; min-width:0; height:44px; padding:0; font-size:16px; font-family:inherit; border:none!important; outline:none!important; background:transparent; color:#28163b; }
.v4-search input::placeholder { color:#91899a; opacity:1; }
.v4-search button { flex:0 0 auto; display:flex; align-items:center; justify-content:center; gap:14px; height:56px; padding:0 26px; background:linear-gradient(130deg,#d8a772,#a97044); color:white; border:0; border-radius:27px; cursor:pointer; font-size:15px; font-weight:700; font-family:inherit; transition:transform .3s var(--v4-ease),box-shadow .3s ease,filter .3s ease; }
.v4-search button:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(107,62,29,.24); filter:brightness(1.05); }
.v4-search button span:last-child { font-size:23px; font-weight:400; }
.v4-search-foot { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; max-width:730px; padding:17px 6px 0; font-size:12px; }
.v4-search-foot a { color:#efd2a1; font-weight:800; transition:color .25s ease; }
.v4-search-foot a:hover { color:white; }
.v4-search-foot span { color:#ddc9e6; }
.v4-prism-scene { position:relative; z-index:2; min-height:580px; display:grid; place-items:center; perspective:1200px; transform-style:preserve-3d; will-change:transform; transition:transform .55s var(--v4-ease); }
.v4-art-aura { position:absolute; inset:10%; border-radius:50%; background:radial-gradient(circle,rgba(231,186,191,.4),transparent 68%); filter:blur(38px); }
.v4-prism-scene img { position:relative; z-index:2; display:block; width:100%; max-width:560px; height:auto; border:0; -webkit-mask-image:radial-gradient(ellipse 71% 75% at 50% 48%,#000 57%,transparent 100%); mask-image:radial-gradient(ellipse 71% 75% at 50% 48%,#000 57%,transparent 100%); filter:drop-shadow(0 35px 45px rgba(30,11,45,.3)); animation:v4-art-float 8s ease-in-out infinite; }
.v4-prism-tag { position:absolute; z-index:3; top:15%; right:-5%; color:#f9e2d0; font-size:10px; font-weight:800; letter-spacing:.32em; line-height:2.0; text-align:left; border-bottom:1px solid #ecc18a; padding-bottom:10px; }
.v4-prism-shine { position:absolute; z-index:4; top:32%; left:44%; width:5px; height:5px; border-radius:50%; background:#fff7ce; box-shadow:0 0 12px 4px rgba(255,222,157,.7); animation:v4-glint 4.5s ease-in-out infinite; pointer-events:none; }
.v4-featurebar { position:relative; z-index:5; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:24px; margin-bottom:36px; border-top:1px solid rgba(255,255,255,.11); border-bottom:1px solid rgba(255,255,255,.17); border-radius:21px; background:rgba(24,13,43,.29); backdrop-filter:blur(14px); padding:16px 6px; box-shadow:0 16px 35px rgba(17,9,32,.12); }
.v4-feature { position:relative; display:flex; align-items:center; min-height:84px; gap:16px; padding:14px clamp(10px,1.3vw,24px); border-right:1px solid rgba(255,255,255,.19); color:#fff; transition:background .4s ease,transform .4s var(--v4-ease); border-radius:15px; }
.v4-feature:last-child { border-right:0; }
.v4-feature:hover { color:#fff; background:rgba(255,255,255,.075); transform:translateY(-4px); }
.v4-feature-icon { display:grid; flex:0 0 52px; width:52px; height:52px; place-items:center; border:1px solid rgba(234,208,160,.34); background:rgba(255,255,255,.065); box-shadow:inset 0 1px 0 rgba(255,255,255,.19); border-radius:15px; color:#e9bf81; transition:transform .45s var(--v4-ease),background .3s ease; }
.v4-feature:hover .v4-feature-icon { transform:rotate(-7deg) scale(1.05); background:rgba(255,255,255,.13); }
.v4-feature-icon svg { display:block; width:26px; height:26px; }
.v4-feature strong { display:block; font-size:14px; font-weight:700; line-height:1.35; letter-spacing:-.02em; }
.v4-feature small { display:block; margin-top:4px; font-size:11px; font-weight:400; line-height:1.45; color:#d9c9e0; }
.v4-feature-arrow { margin-left:auto; color:#e3bd81; font-size:19px; opacity:0; transform:translate(-7px,7px); transition:transform .35s ease,opacity .35s ease; }
.v4-feature:hover .v4-feature-arrow { opacity:1; transform:translate(0,0); }
.v4-hero-scroll { text-align:center; margin:0 0 17px; color:#d7c2df; font-size:10px; font-weight:700; letter-spacing:.28em; }
.v4-hero-scroll span { margin-right:11px; }
@keyframes v4-art-float { 0%,100%{ transform:translate3d(0,0,0) rotate(-.5deg); } 50%{ transform:translate3d(0,-15px,0) rotate(.8deg); } }
@keyframes v4-glint { 0%,100%{ opacity:.5;transform:scale(.55) } 55%{ opacity:1;transform:scale(1.75) } }
/* Below the fold */
.king-services { padding-top:102px; }
.king-service-card,.king-domain-card,.king-story-panel,.king-plan-card,.king-feature-3d,.king-extension-tile {
  transition:transform .58s var(--v4-ease),box-shadow .58s var(--v4-ease),border-color .35s ease;
}
.king-service-card:hover,.king-domain-card:hover,.king-story-panel:hover,.king-plan-card:hover,.king-extension-tile:hover {
  transform:translateY(-11px) rotateX(1deg);
  box-shadow:0 25px 52px rgba(38,18,67,.17);
}
.king-story-panel:hover .king-story-panel-photo img { transform:scale(1.075); }
.king-section-header h2,.king-featured-top h2,.king-service-hero h1 { letter-spacing:-.058em; }
.king-service-hero { background:radial-gradient(ellipse at 80% 30%,#725392,transparent 65%),linear-gradient(125deg,#231437,#43275b); }
.king-service-photo-wrap img { border-radius:30px; }
.site-footer .wordmark-dot { display:none; }
.site-footer .brand-name { color:white; }
.site-footer .wordmark-king { color:#e6c08a; }
@media(max-width:1340px) {
  .site-header .header-inner { gap:13px; }
  .site-header .brand-symbol { width:50px; height:50px; flex-basis:50px; }
  .site-header .brand-name { font-size:26px; }
  .site-header .primary-nav { gap:14px; }
  .site-header .nav-link { font-size:12px; }
  .site-header .nav-actions { gap:8px; }
  .site-header .button-nav { min-width:124px; padding:0 12px; }
  .v4-hero-main { grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr); }
  .v4-hero h1 { font-size:clamp(58px,5.2vw,81px); }
  .v4-feature { gap:9px; padding:10px; }
  .v4-feature-icon { flex-basis:43px; width:43px; height:43px; }
  .v4-feature strong { font-size:12px; }
}
@media(max-width:990px) {
  .site-header .container { width:min(calc(100% - 42px),1500px); }
  .site-header .primary-nav { gap:11px; }
  .site-header .nav-link { font-size:11px; }
  .site-header .brand-name { font-size:22px; }
  .site-header .brand-symbol { width:43px; height:43px; flex-basis:43px; }
  .site-header .button-nav { min-width:112px; font-size:12px; min-height:42px; }
  .site-header .nav-actions { gap:4px; }
  .site-header .nav-actions::before { display:none; }
  .v4-hero-main { min-height:550px; grid-template-columns:minmax(0,1fr) minmax(330px,.8fr); }
  .v4-hero h1 { font-size:clamp(51px,5.5vw,67px); }
  .v4-prism-scene { min-height:460px; }
  .v4-prism-tag { display:none; }
  .v4-featurebar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v4-feature:nth-child(2) { border-right:0; }
  .v4-feature:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.13); }
}
@media(max-width:760px) {
  .site-header { border-bottom-left-radius:18px; border-bottom-right-radius:18px; }
  .site-header .header-inner { min-height:72px; }
  .site-header .brand-symbol { width:46px; height:46px; flex-basis:46px; }
  .site-header .brand-name { font-size:24px; }
  .site-header .primary-nav { top:72px; align-items:stretch; gap:0; background:#fffaf8; padding:12px 24px 24px; border:1px solid #ece4e5; border-radius:0 0 20px 20px; box-shadow:0 20px 40px rgba(28,13,49,.12); }
  .site-header .nav-link { font-size:15px; padding:13px 0; }
  .site-header .nav-link::after { display:none; }
  .site-header .nav-actions { width:100%; display:flex; justify-content:flex-end; gap:14px; margin-top:12px; }
  .site-header .nav-actions::before { display:block; }
  .site-header .nav-cart { width:36px!important; height:36px!important; }
  .site-header .button-nav { min-width:145px; min-height:46px; font-size:14px; }
  .v4-hero .container { width:min(calc(100% - 38px),1500px); }
  .v4-hero-main { display:flex; flex-direction:column; min-height:auto; gap:5px; padding:64px 0 15px; align-items:stretch; }
  .v4-hero-copy { padding:0; }
  .v4-eyebrow { font-size:10px; letter-spacing:.19em; gap:9px; margin-bottom:22px; }
  .v4-hero h1 { font-size:clamp(46px,10vw,70px); line-height:1.04; }
  .v4-hero-description { font-size:16px; max-width:600px; }
  .v4-prism-scene { width:100%; min-height:0; height:auto; max-width:480px; margin:0 auto; }
  .v4-prism-scene img { width:min(100%,420px); }
  .v4-featurebar { margin-top:0; }
  .v4-feature strong { font-size:13px; }
  .v4-feature small { font-size:11px; }
}
@media(max-width:460px) {
  .v4-hero h1 { font-size:clamp(39px,10.8vw,52px); }
  .v4-search { min-height:62px; gap:7px; border-radius:17px; }
  .v4-search-icon { margin-left:7px; width:18px; }
  .v4-search input { font-size:13px; }
  .v4-search button { height:49px; padding:0 12px; font-size:12px; gap:5px; border-radius:13px; }
  .v4-search button span:last-child { font-size:17px; }
  .v4-search-foot { font-size:11px; }
  .v4-featurebar { padding:10px 4px; }
  .v4-feature { gap:8px; min-height:83px; padding:8px 6px; }
  .v4-feature-icon { flex-basis:34px; height:34px; width:34px; border-radius:10px; }
  .v4-feature-icon svg { width:19px; height:19px; }
  .v4-feature strong { font-size:11px; }
  .v4-feature small { font-size:9px; }
  .v4-feature-arrow { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .v4-prism-scene img,.v4-prism-shine { animation:none; }
  .v4-feature,.v4-feature-icon,.nav-link,.nav-cart,.button-nav { transition:none!important; }
}
@media (max-width:990px) {
  .site-header .menu-toggle { display:flex; width:42px; height:42px; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:0; background:#faf5f1; border:1px solid #e8ded6; border-radius:11px; cursor:pointer; }
  .site-header .primary-nav { position:absolute; top:calc(100% - 1px); left:0; right:0; display:none; align-items:stretch; flex-direction:column; gap:0; padding:14px 25px 24px; background:#fffaf8; border:1px solid #eee4e1; border-radius:0 0 20px 20px; box-shadow:0 20px 36px rgba(30,14,49,.12); }
  .site-header .primary-nav.is-open { display:flex; }
  .site-header .nav-link { font-size:15px; padding:14px 4px; border-bottom:1px solid #eee7eb; }
  .site-header .nav-link::after { display:none; }
  .site-header .nav-actions { align-self:flex-end; gap:12px; margin-top:12px; }
  .site-header .nav-actions::before { display:block; }
  .site-header .button-nav { min-width:150px; min-height:46px; font-size:14px; }
}
