/*
Theme Name: Cavali Studio Luxe Clean 3.1
Theme URI: https://cavali.se
Author: Cavali Studio
Description: Ett handgjort, tvåspråkigt WordPress-tema för kreativa digitala studior.
Version: 3.1.0
Text Domain: cavali
*/

@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--ink:#10131b;--paper:#f5f1e9;--card:#fffdf9;--acid:#d9ff46;--blue:#3a56ff;--muted:#676b72;--line:rgba(16,19,27,.16);--radius:28px;--shadow:0 22px 65px rgba(16,19,27,.12)}
html[data-theme="dark"]{--ink:#f6f2ea;--paper:#10131b;--card:#191d27;--acid:#d9ff46;--blue:#9aabff;--muted:#afb4be;--line:rgba(246,242,234,.16);--shadow:0 22px 65px rgba(0,0,0,.32)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:500 16px/1.55 Manrope,Arial,sans-serif;transition:background .35s,color .35s}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;height:auto}.wrap{width:min(1280px,calc(100% - 40px));margin:auto}.eyebrow{font:500 11px/1 DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase}.site-header{position:fixed;z-index:10;top:0;left:0;width:100%;padding:18px 0;mix-blend-mode:normal}.nav{display:flex;justify-content:space-between;align-items:center}.brand,.custom-logo-link{font-size:27px;font-weight:800;letter-spacing:-.08em;position:relative;z-index:12}.custom-logo-link img{display:block;max-height:46px;width:auto}.brand i{font-style:normal;color:var(--blue)}.nav-actions{display:flex;align-items:center;gap:9px}.round-btn{border:1px solid var(--line);background:var(--card);color:var(--ink);width:45px;height:45px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:.2s}.round-btn:hover{transform:rotate(12deg);background:var(--acid)}.menu-toggle{position:relative;z-index:12}.menu-toggle span{display:block;width:17px;height:1.5px;background:currentColor;margin:3px}.overlay-menu{position:fixed;inset:0;background:var(--blue);color:#fff;z-index:11;padding:115px 20px 30px;clip-path:circle(0 at calc(100% - 42px) 42px);transition:clip-path .55s cubic-bezier(.77,0,.18,1)}.overlay-menu.is-open{clip-path:circle(150% at calc(100% - 42px) 42px)}.overlay-menu nav{display:grid;gap:7px}.overlay-menu a{font-size:clamp(40px,10vw,110px);font-weight:800;letter-spacing:-.08em;line-height:.92}.overlay-menu a:hover{color:var(--acid)}.menu-contact{position:absolute;bottom:30px;font:12px DM Mono,monospace}.hero{min-height:100svh;display:flex;align-items:flex-end;position:relative;overflow:hidden;padding:125px 0 58px}.hero-grid{position:relative;z-index:2}.hero h1{font-size:clamp(62px,12.5vw,185px);line-height:.79;letter-spacing:-.1em;margin:20px 0 38px;max-width:1000px}.hero h1 em{font-style:normal;color:var(--blue)}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:20px}.hero-intro{max-width:430px;font-size:17px}.cta{display:inline-flex;align-items:center;gap:15px;border-radius:99px;padding:13px 19px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:700;transition:.25s}.cta:hover{background:var(--blue);transform:translateY(-3px)}.cta b{font-size:19px;line-height:10px}.orb{position:absolute;border-radius:50%;filter:blur(.1px);animation:drift 8s ease-in-out infinite}.orb-one{width:33vw;height:33vw;max-width:500px;max-height:500px;background:var(--acid);top:-10%;right:-8%}.orb-two{width:110px;height:110px;background:var(--blue);right:25%;bottom:19%;animation-delay:-3s}.scribble{position:absolute;right:9%;bottom:8%;width:180px;height:130px;border:2px solid var(--ink);border-radius:48% 52% 40% 60%;transform:rotate(-19deg);opacity:.8;animation:pulse 4s infinite}.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;padding:13px 0;color:var(--blue);font:500 12px DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase}.ticker-track{display:inline-block;animation:marquee 22s linear infinite}.section{padding:100px 0}.section-dark{background:var(--ink);color:var(--paper)}.section-head{display:flex;justify-content:space-between;gap:25px;align-items:start;margin-bottom:52px}.section h2{font-size:clamp(42px,7vw,92px);letter-spacing:-.08em;line-height:.85;margin:13px 0 0;max-width:850px}.section-lead{max-width:350px;font-size:17px}.services{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.service{padding:22px 16px 18px 0;border-bottom:1px solid var(--line);min-height:235px;display:flex;flex-direction:column;justify-content:space-between}.service:not(:last-child){border-right:1px solid var(--line);padding-left:18px}.service:first-child{padding-left:0}.service-num{font:12px DM Mono,monospace;color:var(--blue)}.service h3{font-size:23px;line-height:1.05;letter-spacing:-.06em;margin:30px 0 0}.service p{font-size:13px;color:var(--muted);margin:10px 0 0}.case-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:17px}.case{min-height:380px;border-radius:var(--radius);position:relative;overflow:hidden;padding:26px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;transition:transform .3s}.case:hover{transform:translateY(-7px)}.case:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.55));z-index:-1}.case:nth-child(1){grid-column:span 7;background:#3951dd}.case:nth-child(2){grid-column:span 5;background:#ed5d43}.case:nth-child(3){grid-column:span 5;background:#1d776c}.case:nth-child(4){grid-column:span 7;background:#b15feb}.case-art{position:absolute;z-index:-2;inset:auto -5% -20% auto;font-size:210px;line-height:1;font-weight:800;letter-spacing:-.15em;opacity:.25}.case-tags{font:11px DM Mono,monospace;text-transform:uppercase;letter-spacing:.08em}.case h3{font-size:clamp(28px,4vw,54px);line-height:.9;letter-spacing:-.08em;margin:0}.partners{display:grid;grid-template-columns:repeat(5,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.partner{height:130px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;font-size:20px;font-weight:800;letter-spacing:-.07em;filter:grayscale(1);transition:.2s}.partner:hover{filter:none;background:var(--acid);color:#10131b}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:10vw}.about-copy{font-size:clamp(23px,3.2vw,45px);line-height:1.12;letter-spacing:-.06em}.about-side{padding-top:18px}.about-side p{color:var(--muted);max-width:400px}.stats{display:flex;gap:35px;margin-top:32px}.stats b{display:block;font-size:31px;letter-spacing:-.08em}.stats span{font:10px DM Mono,monospace;text-transform:uppercase}.contact-box{border-radius:var(--radius);background:var(--blue);color:#fff;padding:clamp(28px,5vw,70px);position:relative;overflow:hidden}.contact-box h2{max-width:780px}.contact-box .cta{background:var(--acid);color:#10131b;margin-top:30px}.contact-orb{position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.5);border-radius:50%;right:-90px;bottom:-180px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:42px;max-width:720px}.contact-form input,.contact-form textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.55);background:transparent;padding:13px 2px;color:#fff;outline:0}.contact-form textarea{grid-column:1/-1;height:72px;resize:vertical}.contact-form button{border:0;background:var(--acid);color:#10131b;border-radius:99px;padding:14px 23px;font-weight:800;cursor:pointer;width:max-content}.site-footer{padding:75px 0 25px}.footer-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw}.footer-title{font-size:clamp(50px,9vw,120px);font-weight:800;line-height:.8;letter-spacing:-.1em;margin:0 0 28px}.footer-copy{max-width:680px;font-size:17px}.footer-links{display:grid;gap:11px;align-content:start}.footer-links a{font-size:20px;font-weight:700}.footer-bottom{border-top:1px solid var(--line);margin-top:55px;padding-top:15px;display:flex;justify-content:space-between;color:var(--muted);font:11px DM Mono,monospace}
@keyframes drift{50%{transform:translate(-20px,25px) scale(1.08)}}@keyframes pulse{50%{transform:rotate(18deg) scale(.9)}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:720px){.wrap{width:min(100% - 32px,1280px)}.hero{padding-bottom:35px}.hero h1{font-size:clamp(61px,18.5vw,110px)}.hero-bottom{display:block}.hero-intro{margin-bottom:20px;font-size:15px}.orb-one{width:78vw;height:78vw;right:-27%;top:11%}.orb-two{right:18%;bottom:26%;width:70px;height:70px}.section{padding:70px 0}.section-head{display:block;margin-bottom:33px}.section-lead{margin-top:20px;font-size:15px}.services{grid-template-columns:1fr 1fr}.service{min-height:200px;padding:15px!important}.service:nth-child(2n){border-right:0}.service h3{font-size:20px}.case-grid{display:block}.case{min-height:300px;margin-bottom:13px}.partners{grid-template-columns:repeat(2,1fr)}.partner{height:105px;font-size:18px}.about-grid,.footer-grid{grid-template-columns:1fr;gap:25px}.about-copy{font-size:27px}.stats{gap:23px}.contact-form{grid-template-columns:1fr}.contact-form textarea{grid-column:auto}.footer-title{font-size:75px}.footer-copy{font-size:15px}.footer-bottom{display:block;line-height:2}.site-header{padding:14px 0}.round-btn{width:40px;height:40px}.overlay-menu{padding-top:95px}.case:nth-child(n){grid-column:auto}}

/* Cavali Studio: warm black, champagne gold, and a compact, dismissible menu. */
:root{--ink:#161411;--paper:#f5f0e7;--card:#fbf7ef;--acid:#b9975b;--blue:#a88958;--muted:#70685e;--line:rgba(22,20,17,.17);--gold:#b9975b}html[data-theme="dark"]{--ink:#f2eadc;--paper:#151311;--card:#211e1a;--acid:#c7a568;--blue:#d1b174;--muted:#bfb6a9;--line:rgba(242,234,220,.17)}.admin-bar .site-header{top:32px}.brand{display:block;width:148px}.brand img{display:block;width:100%;height:32px;object-fit:contain;object-position:left center}.logo-dark{display:none!important}html[data-theme="dark"] .logo-light{display:none!important}html[data-theme="dark"] .logo-dark{display:block!important}.orb-one{background:radial-gradient(circle at 35% 30%,#e5cd99,var(--gold) 60%,#80613a)}.orb-two{background:var(--gold)}.round-btn:hover,.partner:hover{background:var(--gold);color:#fff}.cta{background:var(--ink)}.cta:hover{background:var(--gold);color:#fff}.menu-backdrop{position:fixed;z-index:10;inset:0;background:rgba(18,15,12,.38);opacity:0;pointer-events:none;transition:opacity .3s}.menu-backdrop.is-open{opacity:1;pointer-events:auto}.overlay-menu{z-index:11;inset:16px 16px 16px auto;width:min(470px,calc(100% - 32px));height:calc(100% - 32px);background:#1c1814;color:#f8f0e3;border:1px solid rgba(201,169,108,.38);border-radius:22px;padding:66px 38px 35px;clip-path:none;transform:translateX(calc(100% + 30px));opacity:0;transition:transform .38s cubic-bezier(.77,0,.18,1),opacity .25s;box-shadow:-20px 24px 80px rgba(0,0,0,.32)}.overlay-menu.is-open{clip-path:none;transform:translateX(0);opacity:1}.overlay-menu .eyebrow{color:var(--gold)}.overlay-menu nav{margin-top:38px;gap:13px}.overlay-menu a{font-size:clamp(40px,6vw,67px);line-height:.91}.overlay-menu a:hover{color:var(--gold)}.menu-close{position:absolute;right:20px;top:18px;border:1px solid rgba(255,255,255,.32);background:transparent;color:#fff;width:40px;height:40px;border-radius:50%;font-size:30px;font-weight:300;line-height:1;cursor:pointer}.menu-close:hover{background:var(--gold)}body.menu-open{overflow:hidden}.contact-box{background:linear-gradient(135deg,#1d1915,#30291e);border:1px solid rgba(201,169,108,.45);box-shadow:var(--shadow)}.contact-box h2{color:#f8f0e3}.contact-box .eyebrow{color:var(--gold)}.contact-form{gap:18px;margin-top:36px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.13);padding:24px;border-radius:18px}.contact-form input,.contact-form textarea{border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:14px;background:rgba(255,255,255,.06);transition:.2s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--gold);background:rgba(255,255,255,.1)}.contact-form button{background:var(--gold);color:#181512;box-shadow:0 8px 22px rgba(185,151,91,.25)}.contact-orb{border-color:rgba(201,169,108,.55)}.site-footer{background:#151311;color:#f8f0e3;padding-top:88px;overflow:hidden;position:relative}.site-footer:before{content:"";position:absolute;width:530px;height:530px;border:1px solid rgba(201,169,108,.25);border-radius:50%;right:-150px;top:-250px}.footer-copy{color:#d0c6b8;position:relative}.footer-links .eyebrow{color:var(--gold)}.footer-bottom{border-color:rgba(255,255,255,.17);color:#aaa093}.footer-links a:hover{color:var(--gold)}@media(max-width:720px){.admin-bar .site-header{top:46px}.brand{width:132px}.overlay-menu{inset:8px 8px 8px auto;width:calc(100% - 16px);height:calc(100% - 16px);padding:60px 26px 28px}.overlay-menu nav{margin-top:32px}.menu-contact{left:26px;bottom:28px}.contact-form{padding:17px}.site-footer{padding-top:65px}}
/* Transparent, cleaned source logo. The header stays fixed and separated from page content. */.site-header{background:color-mix(in srgb,var(--paper) 88%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.footer-title{width:min(560px,100%);height:clamp(54px,8vw,110px);margin:0 0 38px;background:url('assets/images/cavali-logo-guld-transparent.png') left center/contain no-repeat;font-size:0!important;filter:drop-shadow(0 12px 25px rgba(185,151,91,.17))}
.legal-links{display:flex;gap:18px;flex-wrap:wrap}.legal-links a:hover{color:var(--gold)}
.partner img{max-width:72%;max-height:58px;width:auto;height:auto;object-fit:contain;filter:grayscale(1) contrast(1.1)}
