/* Portland Limousine Service - grid rows.
   The reference lays these out with CSS Grid. Percentage widths plus a pixel
   gap round over 100% and wrap the last item, so these rows are real grids,
   with track counts and gutters matching the reference one for one.

   Elementor renders a FULL container as .e-con-full with its children as direct
   descendants, but a BOXED container as .e-con-boxed > .e-con-inner > children.
   Every rule below therefore has both forms: the grid must land on whichever
   element actually holds the columns. */

/* ---- Fleet, testimonials, journal: repeat(3,1fr) gap 28 ---- */
.pls-grid-3.e-con-full,
.pls-grid-3.e-con-boxed > .e-con-inner{
  display:grid !important;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  align-content:start;
}
.pls-grid-3.e-con-full > .e-con,
.pls-grid-3.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;height:100%;
}

/* ---- Stats band: repeat(4,1fr) gap 40 ---- */
.pls-grid-4.e-con-full,
.pls-grid-4.e-con-boxed > .e-con-inner{
  display:grid !important;
  grid-template-columns:repeat(4,1fr);
  gap:40px;
  align-content:start;
}
.pls-grid-4.e-con-full > .e-con,
.pls-grid-4.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Amenities and the journey rail: repeat(4,1fr), no gutter ---- */
.pls-grid-4t.e-con-full,
.pls-grid-4t.e-con-boxed > .e-con-inner{
  display:grid !important;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  align-content:start;
}
.pls-grid-4t.e-con-full > .e-con,
.pls-grid-4t.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Experiences table: repeat(2,1fr), no gutter ---- */
.pls-grid-2.e-con-full,
.pls-grid-2.e-con-boxed > .e-con-inner{
  display:grid !important;
  grid-template-columns:repeat(2,1fr);
  gap:0;
  align-content:start;
}
.pls-grid-2.e-con-full > .e-con,
.pls-grid-2.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Editorial splits: 1fr 1fr gap 96, vertically centred ---- */
.pls-split.e-con-full,
.pls-split.e-con-boxed > .e-con-inner{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:96px;
  align-items:center;
  align-content:center;
}
.pls-split.e-con-full > .e-con,
.pls-split.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Footer: 1.4fr 1fr 1fr 1.1fr gap 56 ---- */
.pls-footer-grid.e-con-full,
.pls-footer-grid.e-con-boxed > .e-con-inner{
  display:grid !important;
  grid-template-columns:1.4fr 1fr 1fr 1.1fr;
  gap:56px;
  align-items:start;
  align-content:start;
}
.pls-footer-grid.e-con-full > .e-con,
.pls-footer-grid.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Story split on service pages: 1.1fr 1fr gap 96 ---- */
.pls-split-11.e-con-full,
.pls-split-11.e-con-boxed > .e-con-inner{
  display:grid !important;
  grid-template-columns:1.1fr 1fr;
  gap:96px;
  align-items:center;
  align-content:center;
}
.pls-split-11.e-con-full > .e-con,
.pls-split-11.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Two-up card row: repeat(2,1fr) gap 28 ---- */
.pls-grid-2g.e-con-full,
.pls-grid-2g.e-con-boxed > .e-con-inner{
  display:grid !important;grid-template-columns:repeat(2,1fr);gap:28px;align-content:start;
}
.pls-grid-2g.e-con-full > .e-con,
.pls-grid-2g.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;height:100%;
}

/* ---- Inner-page hero veil, so display type stays legible over a photograph ---- */
.pls-hero-veil::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(5,5,5,.8) 0%,rgba(5,5,5,.3) 40%,rgba(5,5,5,.55) 75%,rgba(5,5,5,.95) 100%);
}
.pls-hero-veil > *{position:relative;z-index:2}
.pls-hero-veil > .pls-fill{z-index:0}

/* ---- WPForms anti-spam honeypot: real fields carry no data-field-type ---- */
.wpforms-field[data-field-type]{display:none !important}

/* ---- Standing forms laid out two-up, notes spanning the full width ---- */
.pls-form-2col .wpforms-field-container{
  display:grid;grid-template-columns:repeat(2,1fr);column-gap:24px;
}
.pls-form-2col .wpforms-field-textarea{grid-column:1 / -1}
@media (max-width:767px){
  .pls-form-2col .wpforms-field-container{grid-template-columns:1fr}
}

/* ---- Booking page: form beside the concierge rail ---- */
.pls-book-grid.e-con-full,
.pls-book-grid.e-con-boxed > .e-con-inner{
  display:grid !important;grid-template-columns:1.45fr 1fr;gap:72px;align-items:start;
}
.pls-book-grid.e-con-full > .e-con,
.pls-book-grid.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Contact page: message column beside the map ---- */
.pls-contact-grid.e-con-full,
.pls-contact-grid.e-con-boxed > .e-con-inner{
  display:grid !important;grid-template-columns:1.25fr 1fr;gap:56px;align-items:start;
}
.pls-contact-grid.e-con-full > .e-con,
.pls-contact-grid.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

@media (max-width:1024px){
  .pls-book-grid.e-con-full,
  .pls-book-grid.e-con-boxed > .e-con-inner,
  .pls-contact-grid.e-con-full,
  .pls-contact-grid.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:48px}
}

/* ---- FAQ accordion, dressed down to hairlines ---- */
.pls-faq .elementor-accordion{border:0}
.pls-faq .elementor-accordion-item{border:0;border-top:1px solid rgba(255,255,255,.08)}
.pls-faq .elementor-tab-title{
  background:transparent !important;border:0 !important;padding:28px 0 !important;
  font-family:'Italiana',serif;font-size:23px;line-height:1.3;color:#FFFFFF;
}
.pls-faq .elementor-tab-title.elementor-active,
.pls-faq .elementor-tab-title:hover{color:#D8BE72}
.pls-faq .elementor-tab-title .elementor-accordion-icon{color:#C8A24B;font-size:16px}
.pls-faq .elementor-tab-content{
  background:transparent !important;border:0 !important;padding:0 0 30px !important;
  color:#9B9B9B;font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:300;line-height:1.8;
}

/* ---- Embedded service map, tuned to the nocturne palette ---- */
.pls-map iframe{
  width:100%;height:100%;min-height:460px;border:0;display:block;
  filter:grayscale(1) invert(0.92) contrast(0.86) brightness(0.92);
}

/* ---- Pricing: the reserved plan carries the gold edge ---- */
.pls-plan-featured{
  border-color:rgba(216,190,114,.5) !important;
}

/* ---- Four-up card row: repeat(4,1fr) gap 28 ---- */
.pls-grid-4v.e-con-full,
.pls-grid-4v.e-con-boxed > .e-con-inner{
  display:grid !important;grid-template-columns:repeat(4,1fr);gap:28px;align-content:start;
}
.pls-grid-4v.e-con-full > .e-con,
.pls-grid-4v.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;height:100%;
}
@media (max-width:1024px){
  .pls-grid-4v.e-con-full,
  .pls-grid-4v.e-con-boxed > .e-con-inner{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .pls-grid-4v.e-con-full,
  .pls-grid-4v.e-con-boxed > .e-con-inner{grid-template-columns:1fr}
}

/* ---- Experiences index row: 120px 380px 1fr auto, gap 40 ---- */
.pls-exp-row.e-con-full,
.pls-exp-row.e-con-boxed > .e-con-inner{
  display:grid !important;grid-template-columns:120px 380px 1fr auto;gap:40px;align-items:center;
}
.pls-exp-row.e-con-full > .e-con,
.pls-exp-row.e-con-full > .elementor-widget,
.pls-exp-row.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* ---- Fleet showroom row: 1.25fr 1fr, gap 72 ---- */
.pls-fleet-row.e-con-full,
.pls-fleet-row.e-con-boxed > .e-con-inner{
  display:grid !important;grid-template-columns:1.25fr 1fr;gap:72px;align-items:center;
}
.pls-fleet-row.e-con-full > .e-con,
.pls-fleet-row.e-con-boxed > .e-con-inner > .e-con{
  width:auto !important;max-width:none !important;flex:none !important;
}

/* Showroom photography sits whole inside its frame rather than cropping */
.pls-fit-contain img{object-fit:contain !important}

@media (max-width:1024px){
  .pls-exp-row.e-con-full,
  .pls-exp-row.e-con-boxed > .e-con-inner{grid-template-columns:80px 1fr auto;gap:24px}
  .pls-fleet-row.e-con-full,
  .pls-fleet-row.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:40px}
}
@media (max-width:767px){
  .pls-exp-row.e-con-full,
  .pls-exp-row.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:12px}
}

@media (max-width:1024px){
  .pls-split-11.e-con-full,
  .pls-split-11.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:48px}
  .pls-grid-2g.e-con-full,
  .pls-grid-2g.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:24px}
}

@media (max-width:1024px){
  .pls-grid-3.e-con-full,
  .pls-grid-3.e-con-boxed > .e-con-inner{grid-template-columns:repeat(2,1fr)}
  .pls-grid-4.e-con-full,
  .pls-grid-4.e-con-boxed > .e-con-inner{grid-template-columns:repeat(2,1fr);gap:32px}
  .pls-grid-4t.e-con-full,
  .pls-grid-4t.e-con-boxed > .e-con-inner{grid-template-columns:repeat(2,1fr)}
  .pls-split.e-con-full,
  .pls-split.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:48px}
  .pls-footer-grid.e-con-full,
  .pls-footer-grid.e-con-boxed > .e-con-inner{grid-template-columns:repeat(2,1fr);gap:40px}
}
@media (max-width:767px){
  .pls-grid-3.e-con-full,
  .pls-grid-3.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:24px}
  .pls-grid-4t.e-con-full,
  .pls-grid-4t.e-con-boxed > .e-con-inner{grid-template-columns:1fr}
  .pls-grid-2.e-con-full,
  .pls-grid-2.e-con-boxed > .e-con-inner{grid-template-columns:1fr}
  .pls-footer-grid.e-con-full,
  .pls-footer-grid.e-con-boxed > .e-con-inner{grid-template-columns:1fr;gap:40px}
  .pls-grid-4.e-con-full,
  .pls-grid-4.e-con-boxed > .e-con-inner{grid-template-columns:repeat(2,1fr);gap:24px}
}
