/* WordPress adaptation, matching the original WEB-LJJ visual identity. */
body.admin-bar .site-header{top:32px} @media(max-width:782px){body.admin-bar .site-header{top:46px}}
.ljj-web-theme .contact-form-shell .ljj-contact-form{max-width:none;gap:14px}
.ljj-web-theme .contact-form-shell .ljj-contact-grid{grid-template-columns:1fr;gap:14px}
.ljj-web-theme .contact-form-shell .ljj-contact-form label{font-family:inherit;color:#d9ded3;font-size:12px;font-weight:600;gap:7px}
.ljj-web-theme .contact-form-shell .ljj-contact-form input,
.ljj-web-theme .contact-form-shell .ljj-contact-form textarea{background:#101510;color:#f0f4ec;border:1px solid rgba(198,247,129,.16);border-radius:5px;padding:13px 14px;font-size:13px}
.ljj-web-theme .contact-form-shell .ljj-contact-form input:focus,
.ljj-web-theme .contact-form-shell .ljj-contact-form textarea:focus{outline:2px solid #c6f781;outline-offset:2px}
.ljj-web-theme .contact-form-shell .ljj-contact-form button[type=submit]{background:#c6f781;color:#111a0d;border:0;min-height:52px;border-radius:100px;width:100%;font-weight:750;cursor:pointer}
.ljj-web-theme .contact-form-shell .ljj-contact-privacy{color:#9da99b;font-size:11px}
.ljj-web-theme .contact-form-shell .ljj-contact-privacy a{color:#c6f781;text-decoration:underline}
.ljj-web-theme .contact-form-shell .ljj-contact-result{color:#c6f781;min-height:1.5em}
.ljj-web-theme .contact-form-shell .ljj-form-notice{color:#d1e8b4;font-size:13px;line-height:1.65}
.ljj-web-theme .contact-form-shell .cf-turnstile{min-height:60px}
.ljj-web-theme .ljj-portfolio-wp{display:grid!important}
.ljj-web-theme .ljj-custom-module{background:#111416;border-top:1px solid rgba(255,255,255,.09)}
.ljj-web-theme .ljj-custom-module-description{font-size:16px;max-width:740px;color:#a2a5a3;line-height:1.8}
.ljj-web-theme .ljj-custom-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:35px}
.ljj-web-theme .ljj-custom-card{padding:24px;border:1px solid rgba(255,255,255,.13);background:#191c20;border-radius:16px}
.ljj-web-theme .ljj-custom-card h3{font-size:20px}.ljj-web-theme .ljj-custom-card p{color:#a2a5a3;line-height:1.7}
.ljj-web-theme .ljj-custom-card img{width:100%;height:180px;object-fit:cover;border-radius:8px}
.ljj-web-theme .ljj-custom-feature-img{width:min(100%,660px);max-height:420px;object-fit:cover;border-radius:14px;display:block;margin:25px 0}
.ljj-web-theme .ljj-custom-button{margin-top:25px}
.ljj-web-theme .ljj-service-custom img{width:100%;height:100%;object-fit:cover}
@media(max-width:620px){.ljj-web-theme .ljj-custom-module{padding:90px 0}}

/* 1.0.1 — Mobile layout repair (iPhone Safari / narrow displays).
   Do not clamp the whole page with overflow:hidden: repair the overflowing grid items. */
.ljj-web-theme .contact-grid,
.ljj-web-theme .contact-copy,
.ljj-web-theme .contact-form-shell,
.ljj-web-theme .contact-form-shell .ljj-contact-form,
.ljj-web-theme .contact-form-shell .ljj-contact-grid,
.ljj-web-theme .contact-form-shell .ljj-contact-grid > *,
.ljj-web-theme .contact-form-shell .ljj-contact-form > label {
  min-width:0;
  max-width:100%;
}
.ljj-web-theme .contact-form-shell,
.ljj-web-theme .contact-form-shell .ljj-contact-form {width:100%;}
.ljj-web-theme .contact-form-shell .ljj-contact-grid {grid-template-columns:minmax(0,1fr);}
/* Text and required-marker (*) stay in one text line, input stays below. */
.ljj-web-theme .contact-form-shell .ljj-contact-form label{display:block;overflow-wrap:break-word;}
.ljj-web-theme .contact-form-shell .ljj-contact-form label > input,
.ljj-web-theme .contact-form-shell .ljj-contact-form label > textarea{
  display:block;
  min-width:0;
  max-width:100%;
  width:100%;
  margin-top:10px;
}
.ljj-web-theme .contact-form-shell .ljj-contact-form .cf-turnstile {max-width:100%;}
@media(max-width:820px){
  .ljj-web-theme .contact-grid {grid-template-columns:minmax(0,1fr);}
  .ljj-web-theme .contact-copy h2 {
    white-space:normal;
    overflow-wrap:normal;
    hyphens:auto;
  }
}
@media(max-width:620px){
  .ljj-web-theme .contact-form-shell {width:100%;max-width:100%;padding:21px 17px;}
  .ljj-web-theme .contact-form-shell .form-top {flex-wrap:wrap;row-gap:8px;}
  /* iOS Safari auto-zooms focused text fields below 16px. */
  .ljj-web-theme .contact-form-shell .ljj-contact-form input,
  .ljj-web-theme .contact-form-shell .ljj-contact-form textarea {font-size:16px;}
  .ljj-web-theme .contact-copy h2 {font-size:clamp(42px,11vw,64px);line-height:1.08;}
  .ljj-web-theme .contact-email {max-width:100%;overflow-wrap:anywhere;white-space:normal;}
}
@media(max-width:360px){
  .ljj-web-theme .contact-form-shell {padding:18px 11px;}
  .ljj-web-theme .contact-copy h2 {font-size:clamp(38px,11.4vw,47px);}
  /* Default Turnstile is 300px wide. Visually scale only on extra-narrow screens. */
  .ljj-web-theme .contact-form-shell .cf-turnstile {transform:scale(.86);transform-origin:top left;width:116.28%;margin-bottom:-9px;}
}

/* v1.0.2: Contact heading collision + iOS typography / icon fix. */
/* Desktop: prevent the contact title from crossing into the form column. */
.ljj-web-theme .contact-grid {
  grid-template-columns:minmax(0,1fr) minmax(0,.91fr);
  column-gap:clamp(28px,4.5vw,72px);
}
.ljj-web-theme .contact-copy {min-width:0;max-width:100%;}
/* Grid tracks must never expand to the intrinsic width of input controls. */
.ljj-web-theme .contact-form-shell .ljj-contact-form {grid-template-columns:minmax(0,1fr);}
.ljj-web-theme .contact-form-shell .ljj-contact-grid {width:100%;min-width:0;max-width:100%;}
.ljj-web-theme .contact-form-shell .ljj-contact-grid > label {min-width:0;max-width:100%;}

.ljj-web-theme .contact-copy h2 {
  font-size:clamp(43px,4.7vw,68px);
  line-height:1.085;
  letter-spacing:-.067em;
  white-space:normal;
  overflow-wrap:normal;
  max-width:100%;
}
.ljj-web-theme .contact-copy h2 em {font-style:normal;}
/* Vector decoration, never an OS-specific emoji sticker. */
.ljj-web-theme .contact-asterisk {
  width:42px;height:42px;display:block;
  right:0;top:-42px;line-height:0;
}
.ljj-web-theme .contact-asterisk svg {
  display:block;width:100%;height:100%;overflow:visible;
}
@media(max-width:980px){
 .ljj-web-theme .contact-grid {grid-template-columns:minmax(0,1fr);gap:55px;}
 .ljj-web-theme .contact-copy h2 {font-size:clamp(43px,7.2vw,66px);}
 .ljj-web-theme .contact-asterisk {top:-34px;right:3px;width:34px;height:34px;}
}
@media(max-width:620px){
 .ljj-web-theme .contact-grid {gap:42px;}
 .ljj-web-theme .contact-copy {padding-top:0;}
 .ljj-web-theme .contact-copy h2 {
   font-size:clamp(34px,9vw,42px);
   line-height:1.12;
   letter-spacing:-.059em;
 }
 .ljj-web-theme .contact-asterisk{display:none;}
 .ljj-web-theme .contact-copy>p {margin-top:22px;margin-bottom:36px;line-height:1.7;}
 .ljj-web-theme .contact-direct {min-width:0;max-width:100%;}
 .ljj-web-theme .contact-email {font-size:clamp(21px,6.7vw,29px);}
}
@media(max-width:390px){
 .ljj-web-theme .contact-copy h2 {font-size:clamp(33px,9.3vw,37px);}
}

/* Stable vector artwork rather than a font glyph with OS-dependent emoji fallback. */
.ljj-web-theme .manifesto::after{
 content:""; width:720px;height:720px;
 bottom:-340px;left:-125px;
 background:url('./spark.svg') center/contain no-repeat;
 opacity:.35;
}
.ljj-web-theme .portfolio-star{
 width:180px;height:180px;font-size:0;line-height:0;
 background:url('./spark.svg') center/contain no-repeat;
}
@media(max-width:820px){.ljj-web-theme .portfolio-star{width:145px;height:145px;}}
@media(max-width:620px){
 .ljj-web-theme .portfolio-star{width:105px;height:105px;}
 .ljj-web-theme .manifesto::after{width:440px;height:440px;bottom:-190px;left:-70px;}
}

/* v1.0.3 — identical brand marks on Windows, Safari iOS and Android.
   Font-symbol U+2733 was upgraded to an emoji sticker by Apple Color Emoji;
   the SVG path below has no system-font dependency. */
.ljj-web-theme .ljj-spark-vector {
 display:block; flex:none; width:100%; height:100%; color:inherit;
 overflow:visible; shape-rendering:geometricPrecision;
}
.ljj-web-theme .badge-sparkle {
 display:inline-flex; vertical-align:middle; flex:none;
 width:15px;height:15px;line-height:0;margin-right:7px;
}
.ljj-web-theme .mock-circle > span {
 display:block; width:177px;height:177px;font-size:0;line-height:0;
}
.ljj-web-theme .ticker-track b {
 display:inline-flex;align-items:center;justify-content:center;
 vertical-align:middle;width:20px;height:20px;line-height:0;
 font-size:0;font-weight:400;color:inherit;
}
.ljj-web-theme .note-spark {
 display:inline-flex;justify-content:center;align-items:center;
 width:23px;height:23px;line-height:0;flex:none;
}
.ljj-web-theme .signature-icon {
 display:inline-flex;vertical-align:middle;align-items:center;
 width:21px;height:21px;line-height:0;
}
.ljj-web-theme .portfolio-star {
 background:none; font-size:0;line-height:0;
}
.ljj-web-theme .project-placeholder-symbol {
 display:inline-flex;justify-content:center;align-items:center;
 width:130px;height:130px;line-height:0;
}
@media(max-width:620px){
 .ljj-web-theme .ticker-track b {width:16px;height:16px;}
}
