/* Each service has its own composition within the shared Caltheris identity. */
.games-content,.software-content,.websites-content { max-width:1400px; margin:0 auto; padding:57px clamp(24px,5vw,78px) 65px; }
.games-opening h1,.software-heading h1,.websites-opening h1 { color:var(--gold-light); font-size:clamp(40px,4.6vw,68px); letter-spacing:-.04em; }
.games-intro,.software-intro,.websites-intro { font-size:clamp(18px,1.5vw,21px); color:#dedbd5; }
.games-intro p+p,.software-intro p+p,.websites-intro p+p { margin-top:14px; }
.games-principle h2,.software-capability h2,.software-delivery-copy h2,.websites-focus h2,.websites-detail h2 { color:var(--gold-light); font-size:27px; line-height:1.25; margin-bottom:14px; }
.games-principle p,.software-capability p,.software-delivery-copy p,.websites-focus p,.websites-detail p { color:#dedbd5; }
.games-principle p+p,.software-capability p+p,.software-delivery-copy p+p,.websites-focus p+p,.websites-detail p+p { margin-top:12px; }
.games-content .button,.software-content .button,.websites-content .button { max-width:100%; }

/* Games: a centered introduction, playful feature spread, and two chapters. */
.games-opening { max-width:960px; text-align:center; margin:auto; }
.games-opening h1 { font-size:clamp(40px,4.5vw,66px); max-width:900px; margin:auto; }
.games-opening .games-intro { max-width:720px; margin:22px auto 0; }
.games-playground { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.95fr); align-items:center; gap:58px; margin-top:25px; }
.games-concept { max-width:490px; }
.games-feature h2 { font-size:39px; line-height:1.2; color:var(--gold-light); margin-bottom:19px; }
.games-feature p { font-size:20px; color:#e2ded6; }
.games-action { margin-top:27px; }
.games-next { display:grid; grid-template-columns:1fr 1fr; gap:72px; margin:23px 0 0; padding:30px 0 0; border-top:1px solid var(--rule); }
.games-chapter h2 { font-size:28px; color:var(--gold-light); margin-bottom:16px; }
.games-chapter p { font-size:17px; color:#dedbd5; }
.games-stage { position:relative; min-width:0; color:var(--gold); }
.games-stage::before { content:""; position:absolute; inset:12% 2%; background:radial-gradient(ellipse,rgba(217,165,76,.14),transparent 69%); }
.games-controller { position:relative; width:100%; max-width:none; margin-left:0; transform:rotate(-9deg); overflow:visible; }
.games-orbit { stroke:#bea06e; stroke-width:1; opacity:.27; }
.games-orbit-inner { stroke-dasharray:3 11; opacity:.32; }
.games-axis { stroke:#cba976; stroke-width:1; opacity:.6; }
.games-controller-body { fill:#090908; stroke:#e7c381; stroke-width:2.2; filter:drop-shadow(0 13px 11px #000); }
.games-controller-top { stroke:#c5a36d; stroke-width:2; fill:#16140f; }
.games-controller-seam { stroke:#85714f; stroke-width:1.5; stroke-linecap:round; }
.games-control { fill:#211c13; stroke:#e7c381; stroke-width:1.8; }
.games-stick { stroke:#806d4c; stroke-width:1.3; }
@media(max-width:1080px) { .games-playground { gap:30px; } .games-feature h2 { font-size:34px; } .games-feature p { font-size:18px; } .games-next { gap:40px; } }
@media(max-width:760px) { .games-opening .games-intro { margin-top:22px; } .games-playground { grid-template-columns:1fr; margin-top:12px; gap:4px; } .games-concept { max-width:none; } .games-feature h2 { font-size:31px; } .games-feature p { font-size:18px; } .games-next { grid-template-columns:1fr; gap:27px; margin-top:29px; } .games-chapter h2 { font-size:27px; } }

/* Software: a broad editorial opening, workspace, and offset supporting text. */
.software-opening { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr); align-items:end; gap:70px; padding:15px 0 24px; }
.software-heading h1 { max-width:690px; font-size:clamp(40px,4.4vw,64px); }
.software-intro { padding-bottom:4px; }
.software-workbench { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr); align-items:center; gap:42px; margin:28px 0 20px; }
.software-workspace { min-width:0; color:var(--gold); margin-left:-26px; }
.software-workspace svg { width:100%; filter:drop-shadow(0 10px 22px #000); }
.software-window { fill:#090909; stroke:#a48a61; stroke-width:1.4; }
.software-divider { stroke:#695b43; stroke-width:1; }
.software-dot,.software-node { fill:#d7b57a; }
.software-connection { stroke:#bc9b67; stroke-width:1.25; opacity:.68; }
.software-menu { stroke:#b09874; stroke-width:2; stroke-linecap:round; }
.software-heading-line { stroke:#e7c381; stroke-width:5; stroke-linecap:round; }
.software-selected { fill:#bd9956; fill-opacity:.12; stroke:#d5b47a; stroke-opacity:.4; }
.software-pane { fill:#9e824f; fill-opacity:.055; stroke:#5f523c; }
.software-data-line { stroke:#897657; stroke-width:2; stroke-linecap:round; }
.software-capabilities { display:grid; gap:34px; padding:22px 0; }
.software-capability p { font-size:16px; line-height:1.75; }
.software-delivery { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:65px; max-width:1060px; margin-left:auto; padding:29px 0 0; border-top:1px solid var(--rule); }
.software-delivery-copy p { max-width:760px; font-size:16px; }
.software-action { padding-top:26px; }

/* Websites: a centered responsive showcase, followed by a staggered story. */
.websites-content { padding-top:63px; }
.websites-opening { max-width:980px; text-align:center; margin:auto; }
.websites-opening h1 { max-width:950px; margin:auto; }
.websites-opening .eyebrow { margin-bottom:17px; }
.websites-intro { max-width:790px; margin:22px auto 0; }
.websites-showcase { max-width:1000px; width:100%; margin:27px auto 6px; position:relative; }
.websites-showcase::before { content:""; position:absolute; inset:6% 14% 18%; background:radial-gradient(ellipse,rgba(217,168,85,.11),transparent 70%); }
.websites-showcase svg { width:100%; position:relative; filter:drop-shadow(0 14px 20px #000); }
.websites-device,.websites-mobile { fill:#090909; stroke:#c8a973; stroke-width:1.6; }
.websites-mobile { stroke-width:2; }
.websites-outline { stroke:#8a7552; stroke-width:1; }
.websites-ground { stroke:#c1a36e; stroke-width:1; opacity:.27; }
.websites-dot { fill:#b3976a; }
.websites-address { stroke:#73654b; stroke-width:3; stroke-linecap:round; }
.websites-nav { stroke:#b7a17c; stroke-width:3; stroke-linecap:round; }
.websites-heading-line { stroke:#e7c381; stroke-width:10; stroke-linecap:round; }
.websites-mobile-title { stroke:#e7c381; stroke-width:6; stroke-linecap:round; }
.websites-copy-line { stroke:#93836a; stroke-width:3; stroke-linecap:round; }
.websites-filled-button { fill:#d5af72; }
.websites-button-line { stroke:#493a24; stroke-width:3; stroke-linecap:round; }
.websites-sun { fill:#d8b271; fill-opacity:.13; stroke:#c6a36b; stroke-width:1; }
.websites-arc { stroke:#dcc08b; stroke-width:1; opacity:.7; }
.websites-story { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:95px; max-width:1090px; margin:0 auto; padding-top:23px; }
.websites-focus { padding-top:17px; }
.websites-focus h2 { font-size:38px; max-width:420px; margin-bottom:21px; }
.websites-focus p { max-width:470px; font-size:18px; }
.websites-details { display:grid; gap:30px; padding-top:68px; }
.websites-detail { border-top:1px solid var(--rule); padding-top:24px; }
.websites-detail h2 { font-size:25px; }
.websites-detail p { font-size:16px; line-height:1.75; }
.websites-action { max-width:1090px; margin:29px auto 0; }

@media(max-width:1080px) {
  .games-content,.software-content,.websites-content { padding-inline:35px; }
  .games-hero { gap:0; }
  .games-opening h1 { font-size:53px; }
  .games-principles { gap:26px; }
  .games-principle h2 { font-size:25px; }
  .software-opening { gap:35px; }
  .software-workbench { gap:24px; grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr); }
  .software-workspace { margin-left:-20px; }
  .software-delivery { gap:30px; }
  .websites-story { gap:50px; }
}
@media(max-width:760px) {
  .games-content,.software-content,.websites-content { padding:36px 23px 46px; }
  .games-opening h1,.software-heading h1,.websites-opening h1 { font-size:44px; letter-spacing:-.035em; }
  .games-hero { grid-template-columns:1fr; min-height:0; }
  .games-heading { padding:5px 0 0; }
  .games-opening h1 { max-width:520px; }
  .games-intro { margin-top:23px; }
  .games-stage { max-width:490px; margin:13px auto 0; width:100%; }
  .games-controller { width:100%; margin-left:0; transform:rotate(-7deg); }
  .games-principles { grid-template-columns:1fr; padding-top:29px; margin-top:15px; gap:29px; }
  .games-principle h2 { max-width:none; font-size:27px; }
  .games-principle p { font-size:17px; }
  .software-opening { grid-template-columns:1fr; gap:22px; padding-top:5px; }
  .software-workbench { grid-template-columns:1fr; gap:0; margin:8px 0 27px; }
  .software-workspace { margin:0 -14px; width:calc(100% + 28px); max-width:690px; justify-self:center; }
  .software-capabilities { padding:12px 0 0; gap:29px; }
  .software-capability p,.software-delivery-copy p { font-size:17px; }
  .software-delivery { grid-template-columns:1fr; gap:25px; }
  .software-action { padding:0; }
  .websites-opening { padding-top:5px; }
  .websites-opening h1 { max-width:570px; }
  .websites-showcase { margin:30px -15px 10px; width:calc(100% + 30px); }
  .websites-story { grid-template-columns:1fr; gap:0; padding-top:7px; }
  .websites-focus { padding-top:0; }
  .websites-focus h2 { font-size:32px; margin-bottom:17px; }
  .websites-focus p,.websites-detail p { font-size:17px; max-width:none; }
  .websites-details { padding-top:29px; gap:28px; }
  .websites-detail h2 { font-size:27px; }
  .websites-action { margin-top:29px; }
}
@media(max-width:380px) {
  .games-content,.software-content,.websites-content { padding-inline:20px; }
  .games-opening h1,.software-heading h1,.websites-opening h1 { font-size:38px; }
  .games-content .button,.software-content .button,.websites-content .button { gap:15px; padding-inline:24px; }
  .websites-focus h2 { font-size:29px; }
}
@media(forced-colors:active) {
  .games-stage,.software-workspace,.websites-showcase { display:none; }
  .games-principles,.software-delivery,.websites-detail { border-color:CanvasText; }
}
